Зарузка файлов на сервер

Статус
В этой теме нельзя размещать новые ответы.

Bananan

Новичок
Я работаю под Денвером. Задача простейшая - загрузить файл на сервер. Вот кода :
PHP:
   echo "in PHP!<br>";
   $uploaddir = 'www.frilansn1/tmp/';
   $uploadfile = $uploaddir . basename($_FILES['filename']['name']);
   echo "<font color=red>$uploadfile</font><br>";
   echo "< a href='$uploaddir'>$uploaddir</A><BR>";
   echo "Original: ".$_FILES['filename']['name'];
     if(is_uploaded_file($_FILES['filename']['tmp_name']))
   {
     // Если файл загружен успешно, перемещаем его из временной директории в конечную
     echo 'File: ' . $uploadfile;
     echo 'File upload!!!';
     preg_match('~\.(jpe?g|png|gif)$~i', $_FILES['filename']['name'], $match) || exit('Неверный формат изображения.');
     $fileName = 'image' . mt_rand(100,1000) . date('YmdHis') . '.' . $match[1];
     echo "<br>File upload?=".is_uploaded_file($uploadfile);
     echo move_uploaded_file($_FILES["filename"]["tmp_name"], '/images/' . $uploadfile)
          ? 'Файл успешно загружен.'
          : 'Ошибка загрузки файла.';
   } else {
      echo 'Ошибка загрузки файла';
   }
Этот код возвращает:
Beefor: W:\tmp\phpE91.tmp
After: W%3A%5Ctmp%5CphpE91.tmp
Файл DSCF0153.JPG успешно загружен. Отображаем содержимое in PHP!
www.frilansn1/tmp/DSCF0153.JPG
< a href='www.frilansn1/tmp/'>www.frilansn1/tmp/
Original: DSCF0153.JPGFile: www.frilansn1/tmp/DSCF0153.JPGFile upload!!!
File upload?=
Warning: move_uploaded_file(/images/www.frilansn1/tmp/DSCF0153.JPG) [function.move-uploaded-file]: failed to open stream: No such file or directory in W:\home\frilansn1\www\upload\upload.php on line 52

Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move 'W:\tmp\phpE91.tmp' to '/images/www.frilansn1/tmp/DSCF0153.JPG' in W:\home\frilansn1\www\upload\upload.php on line 52
Ошибка загрузки файла.
Что не правильно и как это исправить?
Подобная проблема у меня уже когда то была - но не помню как я ее решил..
И на диске !сервера" файл не появляется...
 

Вурдалак

Продвинутый новичок
А скрипт тоже в недоумении, потому что ты указал несуществующую директорию, а теперь жалуешься.
 

Bananan

Новичок
А скрипт тоже в недоумении, потому что ты указал несуществующую директорию, а теперь жалуешься.
Читай, что выдает скрипт:
Warning: move_uploaded_file(images/www.frilansn1/tmp/DSCF0153.JPG) [function.move-uploaded-file]: failed to open stream: No such file or directory in W:\home\frilansn1\www\upload\upload.php on line 52

Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move 'W:\tmp\php126B.tmp' to 'images/www.frilansn1/tmp/DSCF0153.JPG' in W:\home\frilansn1\www\upload\upload.php on line 52
-------
указал так: echo move_uploaded_file($_FILES["filename"]["tmp_name"], 'images/' . $uploadfile), а скрипт все равно в недоумении НУ не может он найти файл на сервер...
Куда ложаться файлы на сервере? Вот в чем вопрос.
 

md5S

Это вам не это.
Bananan вторая строка - что это???
PHP:
$uploaddir = 'www.frilansn1/tmp/';
из название понял что это директория в которую будет загружаться, но для указание домен не используется, тебе для этого понадобится $_SERVER['DOCUMENT_ROOT']

PHP:
 preg_match('~\.(jpe?g|png|gif)$~i', $_FILES['filename']['name'], $match) || exit('Неверный формат изображения.');
для определения формата вообще есть mime type, но если ты уже решил по расширению смотреть, то регуляркой не целесообразно
PHP:
$extention = end(explode('.',$_FILES['filename']['name']));

PHP:
$fileName = 'image' . mt_rand(100,1000) . date('YmdHis') . '.' . $match[1];
     echo "<br>File upload?=".is_uploaded_file($uploadfile);
     echo move_uploaded_file($_FILES["filename"]["tmp_name"], '/images/' . $uploadfile)
название перемещаемого файла видимо ты просто так создавал?
для создания случайного имени я использую
PHP:
$fileName = md5(uniqid()).'.'.$match[1];
 

Bananan

Новичок
Это все понятно, большинство из этого еще впереди (пока я это не писал), СЕЙЧАС главное где искать загруженный файл на сервере?:
Warning: move_uploaded_file(images/www.frilansn1/tmp/DSCF0153.JPG) [function.move-uploaded-file]: failed to open stream: No such file or directory in W:\home\frilansn1\www\upload\upload.php on line 52

Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move 'W:\tmp\php126B.tmp' to 'images/www.frilansn1/tmp/DSCF0153.JPG' in W:\home\frilansn1\www\upload\upload.php on line 52
 

С.

Продвинутый новичок
В сообщеннии об ошибке явно указано, ЧТО она не может найти.
 

Фанат

oncle terrible
Команда форума
Перечитай ответы.
Если до сих пор не дошло - загруженный файл пхп находит.
Он не может понять ту загогулину, в которую ты хочешь свой файл ЗАПИСАТЬ
 

Bananan

Новичок
Загогулину я переписал так:
echo move_uploaded_file($_FILES["filename"]["tmp_name"], 'images/' . $uploadfile)
ошибка осталась. Где я туплю?
 

md5S

Это вам не это.
Bananan явно ты мое сообщение полностью проигнорировал. Читай выше.
 

Фанат

oncle terrible
Команда форума
Вообще-то везде.
тебе русским языком несколько человек сказали - указать существующую директорию.
ПАПКУ, СУЩЕСТВУЮЩУЮ НА ДИСКЕ

вот скажи - какое из вышеприведенных слов тебе непонятно?
Ты знаешь, что такое диск?
Про папки когда-нибудь слышал?
С помощью "Проводника виндоуз" заныканную от мамки в папке system32 порнушку найти можешь?
То есть, понятие "существует ли папка на диске" тебе знакомо?
Какая тогда проблема тем же путем, что и порнушку, отыскать папку, в которую ты собрался записывать несчастный файл?

Если же нет, то изучай сначала эти, а потом берись за пхп
 

Bananan

Новичок
Вообще-то везде.
тебе русским языком несколько человек сказали - указать существующую директорию.
ПАПКУ, СУЩЕСТВУЮЩУЮ НА ДИСКЕ

вот скажи - какое из вышеприведенных слов тебе непонятно?
Ты знаешь, что такое диск?
Про папки когда-нибудь слышал?
С помощью "Проводника виндоуз" заныканную от мамки в папке system32 порнушку найти можешь?
То есть, понятие "существует ли папка на диске" тоже тебе знакомо.

Если же нет, то изучай сначала эти, а потом берись за пхп
Папка images/ (в корневой папке страницы) существует. Что мне изучать?
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху