|
|
|
| В принципе вопрос к авторам книги "PHP5 Практика созд. сайтов"
Есть ли какие нибудь ограничения к файлам по загрузке изображений
в галерею фотографий???
Мой файл .jpg, 4.5Mb dpi600
при попытке загрузить его на сервер выводиться сообщение
Фотография не передана на сервер
Фрагмент кода:
if (!empty($_FILES['image']['tmp_name']))
{
// Определяем расширение файла
$ext = strrchr($_FILES['image']['name'], ".");
// Формируем путь к файлу
$image = date("YmdHis",time())."$ext";
$smallimage = date("YmdHis",time())."_s$ext";
// Перемещаем файл из временной директории сервера в
// директорию /files Web-приложения
if (copy($_FILES['image']['tmp_name'], "../inostr/images/".$image))
{
// Уничтожаем файл во временной директории
unlink($_FILES['image']['tmp_name']);
// Изменяем права доступа к файлу
chmod("../inostr/images/".$image, 0644);
}
else links($_POST['id_strana'], "2 условие");
}
else links($_POST['id_strana'], "Фотография не передана на сервер");
|
| |
|
|
|
|
|
|
|
для: tauruz
(30.12.2005 в 14:06)
| | Это может быть связано с настройками конфигурационного файла php.ini - проверьте значение директивы upload_max_filesize, оно должно быть больше 4.5 Мб. | |
|
|
|
|
|
|
|
для: cheops
(30.12.2005 в 14:32)
| | Спасибо!
Все работает!
Всех с наступающим Новым Годом !!! | |
|
|
|
|
|
|
|
для: tauruz
(30.12.2005 в 14:06)
| | Здравствуйте. Мой вопрос тоже к авторам книги PHP 5 Практика создания веб-сайтов, поэтому решил не создавать новую тему
У меня возникла проблема с Фотогалереей, описанной в этой книге.
Итак, на localhost'е все работает замечательно, картинка загружается на сервер и создается ее уменьшенная копия.
Проблемы возникают при работе на удаленном сервере (в моем случае, это бесплатный хостинг от holm.ru) - перестает работать функция в файле admin/util.php, а именно создание уменьшенной копии изображения
Функции не передаются параметры изображения (и происходит деление на ноль при определении коэффициента масштабирования)
<?php
function resizeimg($filename, $smallimage, $w, $h)
{
// Имя файла с масштабируемым изображением
$filename = "../".$filename;
// Имя файла с уменьшенной копией.
$smallimage = "../".$smallimage;
// определим коэффициент сжатия изображения, которое будем генерить
$ratio = $w/$h;
// получим размеры исходного изображения
$size_img = getimagesize($filename);
// Если размеры меньше, то масштабирования не нужно
if (($size_img[0]<$w) && ($size_img[1]<$h)) return true;
// получим коэффициент сжатия исходного изображения
$src_ratio=$size_img[0]/$size_img[1];
// Здесь вычисляем размеры уменьшенной копии, чтобы при масштабировании сохранились
// пропорции исходного изображения
if ($ratio<$src_ratio)
{
$h = $w/$src_ratio;
}
else
{
$w = $h*$src_ratio;
}
// создадим пустое изображение по заданным размерам
$dest_img = imagecreatetruecolor($w, $h);
$white = imagecolorallocate($dest_img, 255, 255, 255);
if ($size_img[2]==2) $src_img = imagecreatefromjpeg($filename);
else if ($size_img[2]==1) $src_img = imagecreatefromgif($filename);
else if ($size_img[2]==3) $src_img = imagecreatefrompng($filename);
// масштабируем изображение функцией imagecopyresampled()
// $dest_img - уменьшенная копия
// $src_img - исходной изображение
// $w - ширина уменьшенной копии
// $h - высота уменьшенной копии
// $size_img[0] - ширина исходного изображения
// $size_img[1] - высота исходного изображения
imagecopyresampled($dest_img, $src_img, 0, 0, 0, 0, $w, $h, $size_img[0], $size_img[1]);
// сохраняем уменьшенную копию в файл
if ($size_img[2]==2) imagejpeg($dest_img, $smallimage);
else if ($size_img[2]==1) imagegif($dest_img, $smallimage);
else if ($size_img[2]==3) imagepng($dest_img, $smallimage);
// чистим память от созданных изображений
imagedestroy($dest_img);
imagedestroy($src_img);
return true;
}
?>
|
Я конечно понимаю, дело скорее всего именно в настройках хостинг-провайдера...
Библиотека gdlib имеется и включена
Возможно, кто-то сталкивался с подобной проблемой | |
|
|
|
|
|
|
|
для: bumpy
(06.01.2006 в 21:09)
| | В первую очередь проверьте права доступа на директорию в которой создаётся уменьшенное изображение $smallimage - скрипт имеет право в ней создавать файлы? | |
|
|
|
|
|
|
|
для: cheops
(06.01.2006 в 21:13)
| | проверил таким способом: загрузил в каталог files два одинаковых файла с разными именами - img01.jpg и img01_s.jpg и написал скрипт, который уменьшает файл img01_s.jpg до размера 100*100 (файл отрезает от самого себя верхний левый кусок)
<?
$filename = "files/img01.jpg";
$w = 100;
$h = 100;
$smallimage = "files/img01_s.jpg";
$dest_img = imagecreatetruecolor($w, $h);
$src_img = imagecreatefromjpeg($filename);
$white = imagecolorallocate($dest_img, 255, 255, 255);
imagecopyresampled($dest_img, $src_img, 0, 0, 0, 0, $w, $h, 100, 100);
imagejpeg($dest_img, $smallimage);
echo "<img src='$smallimage'>";
?>
|
код работает, следовательно, скрипту разрешено создание файла... | |
|
|
|