Answer the question
In order to leave comments, you need to log in
How to resize images in php with name change and record in mysql?
Hello! Faced such a problem, I thought about writing a resize of uploaded images to the server. There were no special problems with loading and resizing one image, it turned out to write:<input name="cover" type="file" />
<?php
if (empty($_FILES['cover']['name']))
{
$cover = "covers/no-cover.jpg";
}
else
{
$path_to_90_directory = '../covers/';//папка
$type_cover = 'covers/';
if(preg_match('/[.](JPG)|(jpg)|(gif)|(GIF)|(png)|(PNG)$/',$_FILES['cover']['name']))//проверка формата
{
$filename = $_FILES['cover']['name'];
$source = $_FILES['cover']['tmp_name'];
$target = $path_to_90_directory . $filename;
move_uploaded_file($source, $target);//загрузка оригинала в папку
if(preg_match('/[.](GIF)|(gif)$/', $filename))
{$src = imagecreatefromgif($path_to_90_directory.$filename);}
if(preg_match('/[.](PNG)|(png)$/', $filename))
{$src = imagecreatefrompng($path_to_90_directory.$filename);}
if(preg_match('/[.](JPG)|(jpg)|(jpeg)|(JPEG)$/', $filename))
{$src = imagecreatefromjpeg($path_to_90_directory.$filename);}
$w = 1000; // задаем нужную шириину
$w_src = imagesx($src);
$h_src = imagesy($src);
$ratio = $w_src/$w;
$w_dest = round($w_src/$ratio);
$h_dest = round($h_src/$ratio);
$dest = imagecreatetruecolor($w_dest,$h_dest);
imagecopyresized($dest, $src, 0, 0, 0, 0, $w_dest, $h_dest, $w_src, $h_src);
$date=time(); //вычисляем время в настоящий момент.
imagejpeg($dest, $path_to_90_directory.$date.".jpg");//сохраняем изображение формата jpg в нужную папку
$cover = $type_cover.$date.".jpg";//заносим в переменную путь до изображения.
$delfull = $path_to_90_directory.$filename;
unlink ($delfull);//удаляем оригинал загруженного изображения
}
else
{
exit ("Изображение должно быть в формате JPG,GIF или PNG");
}
}
echo $cover;
?>
<input name="max_file_size" type="hidden" value="5000000" /><!-- макс. размер -->
<input name='file[]' type='file' multiple='true' />
$arr=array();
//ширина и высота в пикселях
$pic_weight = 10000;
$pic_height = 10000;
if (isset($_FILES))
{
//пролистываем весь массив изображений по одному $_FILES['file']['name'] as $k=>$v
foreach ($_FILES['file']['name'] as $k=>$v)
{
//директория загрузки
$uploaddir = "../images/";
$url_files = "images/";
//новое имя изображения
$apend=date('YmdHis').rand(100,1000).'.png';
//путь к новому изображению
$uploadfile = "$uploaddir$apend";
$uploadss = "$url_files";
//Проверка расширений загружаемых изображений
if($_FILES['file']['type'][$k] == "image/gif" || $_FILES['file']['type'][$k] == "image/png" ||
$_FILES['file']['type'][$k] == "image/jpg" || $_FILES['file']['type'][$k] == "image/jpeg")
{
//черный список типов файлов
$blacklist = array(".php", ".phtml", ".php3", ".php4");
foreach ($blacklist as $item)
{
if(preg_match("/$item\$/i", $_FILES['file']['name'][$k]))
{
echo "Нельзя загружать скрипты.";
exit;
}
}
//перемещаем файл из временного хранилища
if (move_uploaded_file($_FILES['file']['tmp_name'][$k], $uploadfile))
{
//получаем размеры файла
$size = getimagesize($uploadfile);
//проверяем размеры файла, если они нам подходят, то оставляем файл
if ($size[0] < $pic_weight && $size[1] < $pic_height)
{
$arr[$apend] = "$uploadss$apend";//Запишем значение в массив с ключом по имени
echo "";
}
//если размеры файла нам не подходят, то удаляем файл unlink($uploadfile);
else
{
echo "Размер пикселей превышает допустимые нормы.";
unlink($uploadfile);
}
}
else
echo "Файл не загружен, вернитесь и попробуйте еще раз.";
}
else
echo "Можно загружать только изображения в форматах jpg, jpeg, gif и png";
}
$url = mysql_real_escape_string(implode(',',$arr));
echo $url;
}
Answer the question
In order to leave comments, you need to log in
O▃O
95% of the code in the furnace
image.intervention.io/getting_started/introduction
PS
date('YmdHis').rand(100,1000)
what?$blacklist = array(".php", ".phtml", ".php3", ".php4");
and if the extension is jpg, but in a php file? And files with other extensions, but not images, suit you?In general, this topic with images in php is complete ... according to the normal crop, you need to search for it manually or on a JS script and then upload it to the server ... why should the server suffer with pictures ... =) maybe I'm wrong.
Didn't find what you were looking for?
Ask your questionAsk a Question
731 491 924 answers to any question