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]   

> Описание: не удается загрузить файл на сервер
KODAGEN
Отправлено: 28 Февраля, 2008 - 06:39:59
Post Id


Новичок


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


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




Всем привет. Обьясните ламеру т.е. мне где я лохонулся в нижеуказанном скрипте:
PHP:
скопировать код в буфер обмена
  1. if(isset($_POST['DoLoad']))
  2.                 {
  3.                         if(isset($_FILES['FileName'])&&($_FILES['FileName']['name']))
  4.                         {
  5.                        
  6. //                              echo "Файл определен<br>";
  7.                                 $DIR = "Users/".basename($_FILES['Filename']['name']);
  8.                                 if(copy($_FILES['FileName']['tmp_name'],$DIR))
  9.                                 {
  10.                                         echo "Файл удачно скопирован<br>";
  11.                                 }else
  12.                                 {
  13.                                         echo "Ошибка копирования файла : ".$_FILES["FileName"]["error"]."<br>";
  14.                                 }
  15.                         }
  16. //                      header("location:".$_SERVER['REQUEST_URI']);
  17. //                      echo $_SESSION['Rez'];
  18. }

браузер мне говорит следующее : Warning: copy(Users/) [function.copy]: failed to open stream: Is a directory in /usr/local/hosting/sites/Myhost. ck.ua/httpdocs/Projects_ru.php on line 16
Ошибка копирования файла : 0.
Помогите бедному ламеру. Не хочет файл загружатся и всё. Хотя все параметры загружаемого файла определяются.
 
 Top
RomAndry Администратор
Отправлено: 28 Февраля, 2008 - 08:56:39
Post Id



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


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


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




простейший debug:

что показывает?

UPLOADS
 
My status
 Top
EuGen Администратор
Отправлено: 28 Февраля, 2008 - 09:42:10
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


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




В переводе Ваша ошибка - "не удается скопировать файл ибо это директория"


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
Staind
Отправлено: 28 Февраля, 2008 - 17:07:32
Post Id



Гость


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


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

[+]


Попробуйте так:

PHP:
скопировать код в буфер обмена
  1. if(isset($_POST['DoLoad']))
  2.         {
  3.             if(isset($_FILES['FileName'])&&($_FILES['FileName']['name']))
  4.             {
  5.            
  6. //                echo "Файл определен<br>";
  7.                 $DIR = "Users/");
  8.                 if(copy($_FILES['FileName']['tmp_name'],$DIR))
  9.                 {
  10.                     echo "Файл удачно скопирован<br>";
  11.                 }else
  12.                 {
  13.                     echo "Ошибка копирования файла : ".$_FILES["FileName"]["error"]."<br>";
  14.                 }
  15.             }
  16. //            header("location:".$_SERVER['REQUEST_URI']);
  17. //            echo $_SESSION['Rez'];
  18. }

(Отредактировано автором: 28 Февраля, 2008 - 17:08:23)

 
 Top
KODAGEN
Отправлено: 29 Февраля, 2008 - 13:24:41
Post Id


Новичок


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


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




Привет. Я не нашел отличия между своей версией и твоей, креме скобки в выражении


Только что она там делает? Может я плохо знаю PHP?
(Добавление)
А вообще проблема решена, ты правRomAndry. Оказалось что переменная $_FILES["Filename"]["name"] после проверки на существование почемуто оказалось пустой. Сохранив её до проверки на существование и что она не пустаю, удалось таким образом решить пробелму. Конечный результат кода таков :
PHP:
скопировать код в буфер обмена
  1.                 if(isset($_POST['DoLoad']))
  2.                 {
  3. //                      echo $_FILES['FileName'][name]."<br>";
  4.                         $DIR = "Users/".$_FILES['FileName'][name];
  5.                         if(isset($_FILES['FileName'])&&($_FILES['FileName']['name']!=""))
  6.                         {
  7.                        
  8.                                 //******************* Сохраняем загружаемый файл в БД *****************************
  9.                                 echo "Файл определен : ".$DIR;
  10.                                 if(copy($_FILES["FileName"]["tmp_name"],$DIR))
  11.                                 {
  12.                                        
  13.                                 }else {
  14.                                         echo "Ошибка загрузки файла. Код ошибки : ".$_FILES["FileName"]["error"]."<br>";
  15.                                 }
  16.                         }
  17. //                      header("location:".$_SERVER['REQUEST_URI']);
  18. //                      echo $_SESSION['Rez'];
  19.                 }

Только вот почему так происходит, не понятно. Может кто раскажет, плз
 
 Top
Staind
Отправлено: 29 Февраля, 2008 - 15:06:35
Post Id



Гость


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


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

[+]


Строка
PHP:
скопировать код в буфер обмена
  1. if(isset($_FILES['FileName'])&&($_FILES['FileName']['name']))
- мне показалась немного странная. Может так?:
PHP:
скопировать код в буфер обмена
  1. if (isset($_FILES['FileName']) && isset($_FILES['FileName']['name']))
 
 Top
valenok Модератор
Отправлено: 29 Февраля, 2008 - 15:15:07
Post Id



Здесь могла бы быть ваша реклама


Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006  
Откуда: Israel


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




А мне кажется что если
isset($_FILES['FileName']) правда
то
$_FILES['FileName']['name'] будет существовать, так как создаётся системой.
А следовательно проверка может быть только на пустоту.
А корректнее проводить её через empty()


-----
Truly yours, Sasha.
 
My status
 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