ККлава
Новичок
Здравствуйте, есть код, картинка нужного размера сохраняется, все выводится, но не могу сообразить, как сделать необязательным условием загрузку фото. На данный момент если в форме не выбрать файл, то выдает ошибку :
"Warning: getimagesize() [function.getimagesize]: Filename cannot be empty in W:\home\localhost\www\cat.loc\next_kupi.php on line 21"
Пыталась сделать обработку если файл существует через
"if(
isset($_POST['upload'])"
и дальше уменьшать, но это не прокатило.
Спасибо заранее, если кто-то поможет.
"Warning: getimagesize() [function.getimagesize]: Filename cannot be empty in W:\home\localhost\www\cat.loc\next_kupi.php on line 21"
Пыталась сделать обработку если файл существует через
"if(
isset($_POST['upload'])"
и дальше уменьшать, но это не прокатило.
Спасибо заранее, если кто-то поможет.
PHP:
<?php
$time=date("Y:m:d");
$uploaddir = 'uploads/';
$uploadfile = $uploaddir . basename($_FILES['userfile']['name']);
// Проверяем, была ли корректным образом отправлена форма
if(
isset($_POST['name']) && !empty($_POST['name']) &&
isset($_POST['page']) && !empty($_POST['page']) &&
isset($_POST['time']) && !empty($_POST['time']) &&
isset($_POST['text']) && !empty($_POST['text'])
){
// Обрабатываем данные
$name = stripslashes(trim(htmlspecialchars($_POST['name'],ENT_QUOTES)));
$page = stripslashes(trim(htmlspecialchars($_POST['page'],ENT_QUOTES)));
$time = stripslashes(trim(htmlspecialchars($_POST['time'],ENT_QUOTES)));
$text = stripslashes(trim(htmlspecialchars($_POST['text'],ENT_QUOTES)));
if($_FILES["userfile"]["size"] > 1024*2*1024) {
exit ("<p> Размер файла больше 2МБ </p>");
}
$params = getimagesize($_FILES['userfile']['tmp_name']);
if($params['mime'] != 'image/gif' &&
$params['mime'] != 'image/jpeg' &&
$params['mime'] != 'image/png') {
exit ("<p> Не тот формат файла </p>");
}
switch ( $params[2] ) {
case 1: $source = imagecreatefromgif($_FILES['userfile']['tmp_name']); break;
case 2: $source = imagecreatefromjpeg($_FILES['userfile']['tmp_name']); break;
case 3: $source = imagecreatefrompng($_FILES['userfile']['tmp_name']); break;
}
// максимально допустимый размер
// (по ширине/высоте) уменьшенной картинки
$max_size = 250;
if ( $params[0]>$max_size || $params[1]>$max_size ) {
if ( $params[0]>$params[1] ) $size = $params[0]; # ширина
else $size = $params[1]; # высота
$resource_width = floor($params[0] * $max_size / $size);
$resource_height = floor($params[1] * $max_size / $size);
$resource = imagecreatetruecolor($resource_width, $resource_height);
imagecopyresampled($resource, $source, 0, 0, 0, 0,
$resource_width, $resource_height, $params[0], $params[1]);
}
else $resource = $source;
// сохраняем уменьшенную картинку
imagePng($resource, $uploadfile);
imagedestroy($resource);
imagedestroy($source);
$sql = "
INSERT INTO
ads_next (name, text, userfile, page, date)
VALUES
('$name','$text', '$uploadfile','$page','$time')
";
mysql_query($sql);
// Перезапрашиваем страницу
header('Location: ' . $_SERVER['PHP_SELF']. '?id=' . $id);
exit;
}
?>