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
Форумы портала PHP.SU :: Версия для печати :: Загрузка файла, Undefined index
Форумы портала PHP.SU » » Работа с файловой системой и файлами » Загрузка файла, Undefined index

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

1. Goshanello - 10 Декабря, 2014 - 17:16:25 - перейти к сообщению
Здравствуйте!
Прошу помощи, т.к. сам уже ничего не понимаю.
Есть форма для загрузки файла и PHP-скрипт, ее обрабатывающий.

CODE (html):
скопировать код в буфер обмена
  1. <form action="upload.php" method="post" enctype="multipart/form-data">
  2. <input type="file" name="userfile" id="userfile" class="input" value="" accept="audio/mpeg3"/>
  3. <BR />
  4. Название трека:
  5. <input type="text" name="trackname1" id="trackname1" class="input" size="32" value="" />
  6. <BR />
  7. <input type="submit" name="track1" id="track1" Value="Загрузить" />
  8. </form>
  9.  


PHP:
скопировать код в буфер обмена
  1. <?PHP #upload track
  2.   if($_FILES["userfile"]["size"]>1024*1*1024)
  3.    {
  4.       echo("Размер файла превышает допустимый. Максимум 1 Мб");
  5.       exit;
  6.    }
  7.  
  8.    if(is_uploaded_file($_FILES["userfile"]["tmp_name"]))
  9.    {
  10.       move_uploaded_file($_FILES["userfile"]["tmp_name"], "/patch/to/file/".$_FILES["userfile"]["name"]);
  11.    }
  12.    else
  13.    {
  14.       echo("Upload error");
  15.    }
  16. ?>



Но уже в таком варианте вылезает ошибка:
Цитата:
Notice: Undefined index: userfile in C:\xampp\htdocs\upload.php on line 23

Notice: Undefined index: userfile in C:\xampp\htdocs\upload.php on line 29
Upload error



Все типичные ошибки исправил и проверил: enctype в форме указан, название userfile идентично в форме и скрипте, php.ini тоже проверил (кстати, пользуюсь xampp, не может быть что-то не так с сервером?). Но ничего не помогает.

Подскажите пожалуйста, в чем проблема может быть?
2. Panoptik - 10 Декабря, 2014 - 17:21:10 - перейти к сообщению
проверить индекс на существование не пробоавли?
если вы не выбираете файл в форме при самбмите, то в массив $_FILES ничего не попадет, это не мешало бы проверить перед тем как лезть во внутрь массива и пытаться с него извлекать данные
(Добавление)
а вообще var_dump($_FILES); сразу же наменул бы вам в чем дело
3. Goshanello - 12 Декабря, 2014 - 05:48:11 - перейти к сообщению
Panoptik, спасибо, разобрался. Ошибка появляется только при входе на страницу. Когда выбираю файл и жму "загрузить" - все грузится как положено.

Как же тогда избавиться от лишней ошибки? Однако Попробовал в форму дать по умолчанию значение пути - не помогло.
4. RickMan - 12 Декабря, 2014 - 09:31:49 - перейти к сообщению
http://www.php.su/functions/?isset
или
http://www.php.su/functions/?array-key-exists
5. Goshanello - 24 Декабря, 2014 - 19:39:20 - перейти к сообщению
Да, спасибо большое, isset добавил, чтобы лишних ошибок не выскакивало.
Кстати, еще один момент: если этот код будет только в сети. На локальной машине при указании пути, куда сохранять, первый слэш не нужен.

 

Powered by ExBB FM 1.0 RC1