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

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

1. kriger - 25 Ноября, 2009 - 20:54:21 - перейти к сообщению
Такая проблема, неполучается загрузить файл.

CODE (text):
скопировать код в буфер обмена
  1.  
  2.  
  3. define("UPLOADEDFILES", "/var/www/hidden/");
  4.  
  5. if (isset($_FILES['ufile']['name'])) {
  6.            echo "Загрузка: ".$_FILES['ufile']['name']."<br>";
  7.  
  8.            $tmpName = $_FILES['ufile']['tmp_name'];
  9.            $newName = UPLOADEDFILES . $_FILES['ufile']['name'];
  10.  
  11.            if ( !is_uploaded_file($tmpName)
  12.            || !copy($tmpName,$newName)) {
  13.                 echo "Невозможно загрузить файл " . $_FILES['ufile']['name'] .
  14.                 "<br>Временное название: $tmpName <br>";
  15.            } else {
  16.                 echo "Файл загружен. Спасибо!";
  17.            }
  18.  
  19.    }  else {
  20.            echo "Выберите файл и повторите попытку.";
  21.    }
  22.  
  23.  


Весь участок кода проходит до строчки !copy($tmpName,$newName)) {
У меня подозрения на то что у временного файла неправельный путь.
$tmpName получается такого вида: /tmp (Обратный слеш) php63F.tmp
Зависит что либо он настроек РНР? Имя временного файла не должно быть /tmp/php63F.tmp ? Если вопросы глупые, сильно не пинайте, я только учусь.
2. valenok - 26 Ноября, 2009 - 10:39:37 - перейти к сообщению
error_reporting(E_ALL) и права на запись папке /var/www/hidden/
3. biperch - 26 Ноября, 2009 - 11:22:10 - перейти к сообщению
Для удобства пользуются move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)


PHP:
скопировать код в буфер обмена
  1. if (isset($_FILES['userfile'])){
  2.      $uploaddir = 'd:/data/upload/';
  3.      $uploadfile = $uploaddir . basename($_FILES['userfile']['name']);
  4.  
  5.  
  6.      if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile))
  7. }else{
  8.      echo "БОЛТ";
  9. }
4. kriger - 27 Ноября, 2009 - 11:27:01 - перейти к сообщению
Всем спасибо за ответы.А если не указывать полный путь, то какую директорию он считает корневой?

В смысле
- все ясно.
А вот
PHP:
скопировать код в буфер обмена
  1. $uploaddir = 'var/upload/'
???
5. Мелкий - 27 Ноября, 2009 - 13:08:32 - перейти к сообщению
От места расположения самого скрипта, обычно.
PS: не путайте только с путями, начинающимися на / - это никсовый корень директорий.

 

Powered by ExBB FM 1.0 RC1