|
|
|
|
<?php
// функция превода текста с кириллицы в траскрипт
function encodestring($st)
{
// Сначала заменяем "односимвольные" фонемы.
$st=strtr($st,"абвгдеёзийклмнопрстуфхъыэ_",
"abvgdeeziyklmnoprstufh'iei");
$st=strtr($st,"АБВГДЕЁЗИЙКЛМНОПРСТУФХЪЫЭ_",
"ABVGDEEZIYKLMNOPRSTUFH'IEI");
// Затем - "многосимвольные".
$st=strtr($st,
array(
"ж"=>"zh", "ц"=>"ts", "ч"=>"ch", "ш"=>"sh",
"щ"=>"shch","ь"=>"", "ю"=>"yu", "я"=>"ya",
"Ж"=>"ZH", "Ц"=>"TS", "Ч"=>"CH", "Ш"=>"SH",
"Щ"=>"SHCH","Ь"=>"", "Ю"=>"YU", "Я"=>"YA",
"ї"=>"i", "Ї"=>"Yi", "є"=>"ie", "Є"=>"Ye"
)
);
// Возвращаем результат.
return $st;
}
/**
* Функция загрузки файла (аплоадер)
* @param int $max_file_size максимальный размер файла в килобайтах
* @param array $valid_extensions массив допустимых расширений
* @param string $upload_dir директория загрузки
* @return array сообщение о ходе выполнения
*
* @author IT studio IRBIS-team (www.irbis-team.com)
* @copyright © 2009 IRBIS-team
*/
function uploadHandle($max_file_size = 100, $valid_extensions = array(), $upload_dir = '.')
{
$error = null;
$info = null;
$max_file_size *= 1024;
if ($_FILES['userfile']['error'] === UPLOAD_ERR_OK)
{
// проверяем расширение файла
$file_extension = pathinfo($_FILES['userfile']['name'], PATHINFO_EXTENSION);
if (in_array($file_extension, $valid_extensions))
{
// проверяем размер файла
if ($_FILES['userfile']['size'] < $max_file_size)
{
$_FILES['userfile']['name'] = encodestring ($_FILES['userfile']['name']);
$destination ="img/logo_pu/" . $_FILES['userfile']['name'];
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $destination))
$info = 'Файл успешно загружен';
else
$error = 'Не удалось загрузить файл';
}
else
$error = 'Размер файла больше допустимого';
}
else
$error = 'У файла недопустимое расширение';
}
else
{
// массив ошибок
$error_values = array(
UPLOAD_ERR_INI_SIZE =>
'Размер файла больше разрешенного директивой upload_max_filesize в php.ini',
UPLOAD_ERR_FORM_SIZE =>
'Размер файла превышает указанное значение в MAX_FILE_SIZE',
UPLOAD_ERR_PARTIAL => 'Файл был загружен только частично',
UPLOAD_ERR_NO_FILE => 'Не был выбран файл для загрузки',
UPLOAD_ERR_NO_TMP_DIR => 'Не найдена папка для временных файлов',
UPLOAD_ERR_CANT_WRITE => 'Ошибка записи файла на диск'
);
$error_code = $_FILES['userfile']['error'];
if (!empty($error_values[$error_code]))
$error = $error_values[$error_code];
else
$error = 'Случилось что-то непонятное';
}
return array('info' => $info, 'error' => $error);
}
/////////////////////////////////////////////////////////////////////
$extensions = array('jpg', 'jpeg', 'png', 'gif');
$upload_dir = 'images';
// Запускаем функцию
if(!empty($_POST['upload_submit']))
{
$message = uploadHandle(200, $extensions, $upload_dir);
// Выводим сообщение
echo $message['error'] ? "<p class='mistake'>".$message['error']."</p>" :
"<p class='nomistake'>".$message['info']."</p>";
}
?>
|
неизвестно, но почему-то файл с кириллицей заменяется другим файлом.
Если английские буквы - все работает без замечаний | |
|
|
|
|
|
|
|
для: Василий
(06.01.2012 в 17:11)
| | Повторю Вам последний раз.
Делайте поэтапную проверку данных
Создали переменную - вывод в браузер, проверка
Обработали переменную - вывод в браузер, проверка
Грузите файл - вывод в браузер дампа, проверка.....
и так далее и тому подобное
посмотрите на имя переменной после обработки функцией encodestring()
error_reporting() где ?
И прекращайте плодить однотипные темы. этот вопрос Вы уже подняли в предыдущей, зачем две одинаковые темы?
Из ни откуда скрин браться не может.
Глядя на этот код всё должно работать отлично.
Обратите внимание на директории для загрузки, в двух местах разные данные | |
|
|
|
|
|
|
|
для: Slo_Nik
(06.01.2012 в 17:21)
| | так берется же скрин. не я же его рисую | |
|
|
|
|
|
|
|
для: Василий
(06.01.2012 в 17:25)
| | прошу вас наглядно показать как делать
Создали переменную - вывод в браузер, проверка
Обработали переменную - вывод в браузер, проверка
Грузите файл - вывод в браузер дампа, проверка.....
|
| |
|
|
|
|
|
|
|
для: Василий
(06.01.2012 в 17:28)
| | вот вам
<?php // upload.php
echo <<<_END
<html><head><title>PHP Form Upload</title></head><body>
<form method='post' action='upload.php' enctype='multipart/form-data'>
Select File: <input type='file' name='filename' size='10' />
<input type='submit' value='Upload' />
</form>
_END;
if ($_FILES)
{
$name = $_FILES['filename']['name'];
move_uploaded_file($_FILES['filename']['tmp_name'], $name);
echo "Uploaded image '$name'<br /><img src='$name' />";
}
echo "</body></html>";
?>
|
сохраните как upload.php
и загрузите файл, написанный кирилицей.
сами все увидите | |
|
|
|
|
|
|
|
для: Василий
(06.01.2012 в 17:37)
| | Нет. это Вам надо над этим скриптом сидеть и думать, а мне он на фиг не нужен. | |
|
|
|
|
|
|
|
для: Василий
(06.01.2012 в 17:28)
| | [поправлено модератором] | |
|
|
|
|
|
|
|
для: Slo_Nik
(06.01.2012 в 17:53)
| | а что изменится, если вы узнаете сколько мне лет?
Если не имеет смысла, то зачем спрашивать?
Я Вам конкретные вопросы задаю уже не в первый день и все никак не могу получить ответа | |
|
|
|