|
<?php
date_default_timezone_set('Europe/Moscow');
/**
* Function of uploaded of a file
* Функция загрузки файла (аплоадер)
* @param int $max_file_size максимальный размер файла в килобайтах
* @param array $valid_extensions массив допустимых расширений
* @param string $upload_dir директория загрузки
* @return array сообщение о ходе выполнения
**/
function uploadHandle($max_file_size = 100, $valid_extensions = array(), $upload_dir = '.', $normal = '', $small_w = '', $small_h = '')
{
$result = 0;
$error = null;
$info = null;
$max_file_size *= 1024;
if ($_FILES['filename']['error'] === UPLOAD_ERR_OK)
{
// проверяем расширение файла
$file_extension = pathinfo($_FILES['filename']['name'], PATHINFO_EXTENSION);
if (in_array($file_extension, $valid_extensions))
{
// проверяем размер файла
if ($_FILES['filename']['size'] < $max_file_size)
{
// Вырезаем разные знаки
$_FILES["filename"]["name"] = translit($_FILES["filename"]["name"]);
$destination = getcwd().$upload_dir .$_FILES['filename']['name'];
if (copy($_FILES['filename']['tmp_name'], $destination)) {
$what = getimagesize( $_FILES['filename']['tmp_name']);
// параметры файла
if ($what['mime'] == 'image/gif')
$o_im = imageCreateFromGIF($_FILES['filename']['tmp_name']) ;
if ($what['mime'] == 'image/jpeg')
$o_im = imageCreateFromJPEG($_FILES['filename']['tmp_name']) ;
if ($what['mime'] == 'image/png')
$o_im = imageCreateFromPNG($_FILES['filename']['tmp_name']) ;
$width = imagesx($o_im);
$height = imagesy($o_im);
// Делаем маленькую картинку
if (!empty($small_w) and !empty($small_h)) {
if ($width > $height and $height < $small_h){
$newwidth = $small_w;
$newheight = round($height * $newwidth / $width) ;
}
else{
$newheight = $small_h;
$newwidth = round($width * $newheight / $height) ;
}
$t_im = imageCreateTrueColor($newwidth,$newheight);
imageCopyResampled($t_im, $o_im, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);
imageJPEG($t_im, $upload_dir .'small_' . $_FILES['filename']['name'],90);
}
// Стандартная картинка
if (!empty($normal)) {
if ($width >= $normal){
$newwidth = $normal;
$newheight = round($height * $newwidth / $width) ;
}
else{
$newheight = $height;
$newwidth = $width ;
}
$t_im = imageCreateTrueColor($newwidth,$newheight);
imageCopyResampled($t_im, $o_im, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);
imageJPEG($t_im, $upload_dir .'normal_' . $_FILES['filename']['name'],90);
}
imageDestroy($o_im);
imageDestroy($t_im);
} else
$error = 'Не удалось загрузить файл - '.$destination.' ';
}
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['filename']['error'];
if (!empty($error_values[$error_code]))
$error = $error_values[$error_code];
else
$error = 'Случилось что-то непонятное';
}
return array('info' => $info, 'error' => $error);
}
function translit($str) {
$tr = array(
"А"=>"A","Б"=>"B","В"=>"V","Г"=>"G",
"Д"=>"D","Е"=>"E","Ж"=>"J","З"=>"Z","И"=>"I",
"Й"=>"Y","К"=>"K","Л"=>"L","М"=>"M","Н"=>"N",
"О"=>"O","П"=>"P","Р"=>"R","С"=>"S","Т"=>"T",
"У"=>"U","Ф"=>"F","Х"=>"H","Ц"=>"TS","Ч"=>"CH",
"Ш"=>"SH","Щ"=>"SCH","Ъ"=>"","Ы"=>"YI","Ь"=>"",
"Э"=>"E","Ю"=>"YU","Я"=>"YA","а"=>"a","б"=>"b",
"в"=>"v","г"=>"g","д"=>"d","е"=>"e","ж"=>"j",
"з"=>"z","и"=>"i","й"=>"y","к"=>"k","л"=>"l",
"м"=>"m","н"=>"n","о"=>"o","п"=>"p","р"=>"r",
"с"=>"s","т"=>"t","у"=>"u","ф"=>"f","х"=>"h",
"ц"=>"ts","ч"=>"ch","ш"=>"sh","щ"=>"sch","ъ"=>"y",
"ы"=>"yi","ь"=>"'","э"=>"e","ю"=>"yu","я"=>"ya",
" "=>"_","?"=>"_","/"=>"_","\\"=>"_",
"*"=>"_",":"=>"_","*"=>"_","\""=>"_","<"=>"_",
">"=>"_","|"=>"_"
);
return strtr($str,$tr);
}
// Запускаем функцию
if(isset($_POST['upload'])) {
$valid_extensions = array('jpg', 'jpeg', 'png', 'gif', 'JPG', 'JPEG', 'PNG', 'GIF');
$upload_dir = "/images/";
$message = uploadHandle(1024, $valid_extensions , $upload_dir,450,125,90);
}
else {
echo "не сработало";
}
?>
|
При загрузке выдается ошибка:
Warning: imagejpeg(): Unable to open '/images/small_1266854097_45290869_k29.jpg' for writing: No such file or directory in D:\usr\mosts\site\www1\fnc_add_img.php on line 60 Warning: imagejpeg(): Unable to open '/images/normal_1266854097_45290869_k29.jpg' for writing: No such file or directory in D:\usr\mosts\site\www1\fnc_add_img.php on line 76 | |