Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Загрузка изображений!!!
 
 автор: tauruz   (30.12.2005 в 14:06)   письмо автору
 
 

В принципе вопрос к авторам книги "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'], "Фотография не передана на сервер");

   
 
 автор: cheops   (30.12.2005 в 14:32)   письмо автору
 
   для: tauruz   (30.12.2005 в 14:06)
 

Это может быть связано с настройками конфигурационного файла php.ini - проверьте значение директивы upload_max_filesize, оно должно быть больше 4.5 Мб.

   
 
 автор: tauruz   (30.12.2005 в 15:34)   письмо автору
 
   для: cheops   (30.12.2005 в 14:32)
 

Спасибо!
Все работает!
Всех с наступающим Новым Годом !!!

   
 
 автор: bumpy   (06.01.2006 в 21:09)   письмо автору
 
   для: 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_img255255255);        
    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_img0000$w$h$size_img[0], $size_img[1]);                 
    
// сохраняем уменьшенную копию в файл 
    
if ($size_img[2]==2)  imagejpeg($dest_img$smallimage);                       
    else if (
$size_img[2]==1imagegif($dest_img$smallimage);                       
    else if (
$size_img[2]==3imagepng($dest_img$smallimage); 
    
// чистим память от созданных изображений 
    
imagedestroy($dest_img); 
    
imagedestroy($src_img); 
    return 
true;          
  }   
?>

Я конечно понимаю, дело скорее всего именно в настройках хостинг-провайдера...
Библиотека gdlib имеется и включена
Возможно, кто-то сталкивался с подобной проблемой

   
 
 автор: cheops   (06.01.2006 в 21:13)   письмо автору
 
   для: bumpy   (06.01.2006 в 21:09)
 

В первую очередь проверьте права доступа на директорию в которой создаётся уменьшенное изображение $smallimage - скрипт имеет право в ней создавать файлы?

   
 
 автор: bumpy   (06.01.2006 в 23:17)   письмо автору
 
   для: 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_img255255255);
 
imagecopyresampled($dest_img$src_img0000$w$h100100);
 
 
imagejpeg($dest_img$smallimage);
 echo 
"<img src='$smallimage'>";
?>

код работает, следовательно, скрипту разрешено создание файла...

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования