Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: failed to open stream: Permission denied in

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: проблема при загрузке изображения на сервер
senmih
Отправлено: 11 Января, 2011 - 10:34:26
Post Id


Новичок


Покинул форум
Сообщений всего: 2
Дата рег-ции: Янв. 2011  


Помог: 0 раз(а)




Доброго времени суток.

Написал скриптик для загрузки изображений на сервер, но вылезает ошибка:

Warning: copy(images/111.jpg) [function.copy]: failed to open stream: Permission denied in /var/www/...../upload.php on line 39

Warning: rename(images/111.jpg,images/img_20110111142154.jpg) [function.rename]: No such file or directory in /var/www/......./upload.php on line 49

Порылся в интернете, все говорят, что нужны права доступа к папке хранения временных файлов 777. Хорошо, сделал 777 - ничего не поменялось.

В чем проблема может быть?

Вот скрипт, кому не лень, посмотрите:

CODE (htmlphp):
скопировать код в буфер обмена
  1. <html>
  2. <head><title>Обработка</title></head>
  3. <body>
  4.  
  5. <?php
  6. if(isset($_POST['userfile']))     {$userfile = $_POST['userfile'];}
  7. if(isset($_POST['submit']))     {$submit = $_POST['submit'];}
  8.  
  9.  
  10.  
  11.  
  12. if(isset($submit)){
  13.  
  14.   $maxwidth = 1600; //Максимальная ширина загружаемого изображения
  15.   $maxheight = 1200; //Максимальная высота загружаемого изображения
  16.   $allowed_filetypes = array('.jpg','.JPG'); //Поддерживаемые форматы
  17.   $maxs = 2048; // Максимальный размер файла в байтах
  18.   $upload_path = "images/";
  19.   $filename = $_FILES['userfile']['name']; //Имя файла
  20.   $sizefile = getimagesize($_FILES['userfile']['tmp_name']);//Параметры изображения
  21.   $size = filesize($_FILES['userfile']['tmp_name'])/1024; //Переводим размер изображения в Кбайты
  22.   $size = ceil($size); //округляем размер файла до целого числа
  23.            
  24.   $ext = substr($filename,strpos($filename,'.'),strlen($filename)-1);
  25.  
  26.   if(!in_array($ext,$allowed_filetypes)){
  27.   echo "<p>Вы <strong>не выбрали изображение</strong> для загрузки или данный <strong>формат файлов не поддерживается</strong></p>";
  28.   }
  29.   else{
  30.       if($size > $maxs or $size == 0){ //Если размер файла больше максимального или равен 0 выдаем ошибку
  31.           echo "<p>Разрешается загружать файлы не более 2 Мб</p>";
  32.       }
  33.       else{
  34.           if($sizefile[0] > $maxwidth or $sizefile[1] > $maxheight) {// Если разрешение не соответствуют выдаем ошибку
  35.              echo "<p>Файл, который ва пытаетесь загрузить, имее разрешение <strong>$sizefile[0] x $sizefile[1]</strong>. Разрешается загружать фото не боле чем <strong>$maxwidth х $maxheight</strong> пикселей</p>";
  36.           }
  37.           else{                
  38.                if(isset($filename)){// Если имя файла существует производим загрузку
  39.                    if(copy($_FILES['userfile']['tmp_name'], $upload_path.$filename)){
  40.                    echo "<p>Файл <strong>".$filename."</strong> успешно загружен</p>";
  41.                    }
  42.                }
  43.           else {
  44.                echo "<p>Файл <strong>".$filename."</strong>  не загружен</p>";
  45.           }
  46.  
  47. $new_name = "img_".date("YmdHis").".jpg";
  48. //Переименуем файл на всякий случай что бы не было совпадений                                                  
  49. rename($upload_path.$filename, $upload_path.$new_name);
  50. //Запомним новое имя
  51. $filename = $new_name;
  52.  
  53.  
  54.  
  55.  
  56. }      
  57. }
  58.   }
  59. }
  60. else{
  61. echo "<p>Неверный формат запроса</p>";
  62. }
  63. ?>
  64.  
  65. </body>
  66. </html>


Заранее спасибо
 
 Top
asik
Отправлено: 11 Января, 2011 - 11:34:13
Post Id


Новичок


Покинул форум
Сообщений всего: 28
Дата рег-ции: Окт. 2010  


Помог: 0 раз(а)




доступ к images/ есть?
в регистре букв не ошиблись?
 
 Top
senmih
Отправлено: 11 Января, 2011 - 11:43:21
Post Id


Новичок


Покинул форум
Сообщений всего: 2
Дата рег-ции: Янв. 2011  


Помог: 0 раз(а)




asik пишет:
доступ к images/ есть?
в регистре букв не ошиблись?


Ого! Огромнейшее спасибо!!! Права на images стояли 755 - запрет на запись!

Большое спасибо, теперь все работает!!!
 
 Top
JustUserR
Отправлено: 12 Января, 2011 - 14:56:03
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


Помог: 17 раз(а)




senmih В общем случае предполагаемая задача осуществения установки требуемых прав доступа позволяющих разрешить исполняемому PHP-приложению возможность модификации файловых объектов в данной директории может быть решена средствмми модулей suexec/suphp - такая подход обеспечивает значительную большую безопасность и включает увеличение привелегий для требуемой инстанции PHP-приложения а не ослабление контроля доступа к целевому файловому объекту


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB