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 :: Почему не робит загрузка файлов?

 PHP.SU

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


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

> Без описания
nkl
Отправлено: 06 Февраля, 2012 - 01:01:47
Post Id



Посетитель


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


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




Доброго времени суток, господа программисты!
Мне нужно загрузить файлы на сервер. Почитав про input type="file" и вообще про загрузку файлов накалякал простенькую форму index.html:
CODE (html):
скопировать код в буфер обмена
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  5. <title>Загрузка файлов на сервер</title>
  6. </head>
  7.  
  8. <body>
  9.         <h2><p><b> Форма для загрузки файлов </b></p></h2>
  10.       <form action="upload.php" method="post" enctype="multipart/form-data">
  11.       <input type="file" name="filename"><br>
  12.       <input type="submit" value="Загрузить"><br>
  13.       </form>
  14. </body>
  15. </html>
  16.  

и скрипт обработки файла upload.php
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. ini_set('display_errors',1);
  3.         error_reporting(E_ALL);
  4. ?>
  5. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  6. <html xmlns="http://www.w3.org/1999/xhtml">
  7. <head>
  8. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  9. <title>Результат загрузки файла</title>
  10. </head>
  11.  
  12. <body>
  13. <?PHP
  14.    if($_FILES["filename"]["size"] > 1024*3*1024)
  15.    {
  16.      echo ("Размер файла превышает три мегабайта");
  17.      exit;
  18.    }
  19.    // Проверяем загружен ли файл
  20.    if(is_uploaded_file($_FILES["filename"]["tmp_name"]))
  21.    {
  22.      // Если файл загружен успешно, перемещаем его
  23.      // из временной директории в конечную
  24.      move_uploaded_file($_FILES["filename"]["tmp_name"], "file/".$_FILES["filename"]["name"]);
  25.    } else {
  26.       echo("Ошибка загрузки файла");
  27.    }
  28. ?>
  29. </body>
  30. </html>

Который ругается вот таким вот образом "Warning: move_uploaded_file(file/canon.jpg): failed to open stream: No such file or directory in /var/www/nkl/data/www/exp.nkl.su /upl/upload.php on line 24 Warning: move_uploaded_file(): Unable to move '/var/www/nkl/data/mod-tmp/phpqr9T24' to 'file/canon.jpg' in /var/www/nkl/data/www/exp.nkl.su /upl/upload.php on line 24 "
Директория file лежит в той же директории, что и скрипт upload.php. У неё выставлены атрибуты 777. Я понимаю в чем ошибка но не могу понять в следствии чго она возникает? Путь до конечной директории ведь прописан правильно, или я ошибаюсь?
(Добавление)
Блин. Народ, простите, пока писал тему, сам же нашел ошибку. Я оказывается директорию на сервере обозвал не file, а files! МОДЕРАТОР удалите пожалуйста. Радость
 
 Top
sKaa
Отправлено: 06 Февраля, 2012 - 01:14:14
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 979
Дата рег-ции: Окт. 2011  
Откуда: Россия г. Нижний Новгород


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

[+]


Судя по ошибке я подозреваю, что функция не может переместить файл из временной папки в ту которую ты указываешь.
Если я прав, глядя на путь скрипта (а я скорей всего прав), скрипт у тебя срабатывает на хостинге, ОС которого один из дистрибутивов линукса.
Я готов констатировать, что у тебя либо нету папки '/file', либо она есть, но у неё нужно выставить права на запись.
Из командной строки самого линукса это можно сделать с помощью команды chmod -R 0777 /var/www/...
Но, если я не ошибся в начале и правильно, понял, что скрипт всё таки размещен на хостинге, а не у тебя дома, я твёрдо убежден, что хостер не даст тебе так просто логин и пароль к системе )))
Для начала попробуй зайдя фтп удалить свою папку /file, а затем, перед move_uploaded_file ... , один раз напиши mkdir('file', 0777);
Если скрипт создаст папку с таким правами, но работать не будет, тогда докучай техподдержке хостинга, а не нам))

Я доступно объяснил???
(Добавление)
nkl пишет:
У неё выставлены атрибуты 777
- ну я сам недавно начал разбираться в линуксах, но думаю уже я могу тебя заявить, что одних прав папки не достаточно иногда. У папки есть ещё владелец.

(Отредактировано автором: 06 Февраля, 2012 - 01:16:13)

 
 Top
nkl
Отправлено: 06 Февраля, 2012 - 04:44:41
Post Id



Посетитель


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


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




Мда, доходчиво, НО
Цитата:
Блин. Народ, простите, пока писал тему, сам же нашел ошибку. Я оказывается директорию на сервере обозвал не file, а files! МОДЕРАТОР удалите пожалуйста.
 
 Top
sKaa
Отправлено: 06 Февраля, 2012 - 04:49:00
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 979
Дата рег-ции: Окт. 2011  
Откуда: Россия г. Нижний Новгород


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

[+]


nkl пишет:
Блин. Народ, простите, пока писал тему, сам же нашел ошибку. Я оказывается директорию на сервере обозвал не file, а files! МОДЕРАТОР удалите пожалуйста.

Ну это он умудрился сделать пока я набирал сообщение - прикинь какой он ловкий типан ))) - просто так меня озадачит считай 0))

(Отредактировано автором: 06 Февраля, 2012 - 04:49:43)

 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Напишите за меня, пожалуйста »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB