[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Загрузка файла
#8bit
Не так давно начал изучать php, в данный момент застрял на загрузке файлов.
Есть html форма:

<form action="upload.php" method="POST" enctype="multipart/form-data">
<input
type="file" name="usrf">
<p><input
type="submit"></p>
</form>



файл upload:

<?php
if ($_FILES['usrf']['error'] == 0)
{
$t = $FILES ["usrf"]["tmp_name"];
$n = $FILES ["usrf"]["name"];
move_uploaded_file ($t, $n);
}
else
{
echo 'Проблема: ';
switch ($_FILES['usrf']['error'])
{
case 1: echo 'размер файла больше upload_max_filesize'; break;
case 2: echo 'размер файла больше max_file_size'; break;
case 3: echo 'загружена только часть файла'; break;
case 4: echo 'файл не загружен'; break;
}
}



Файл никуда не загружается, даже в папке tmp нету. Смотрел командой
 print_r ($_FILES['usrf']);
, все нормально, файл во временную папку копируется.
Я уже пол дня в googl'e, ничего толкового не нашел, руки аж опустились :( Буду благодарен за любую помощь, подсказку

P.S. Использую пакет Denwer, может в нем проблема?



Спустя 10 минут, 19 секунд (18.06.2011 - 22:29) Игорь_Vasinsky написал(а):
Вот #9 Пост - на примере загрузки картинки -с подробными комментариями.

и потом - все данные переданные из формы можно вывести:

var_dump($_POST);


а в твоём случае

var_dump($_FILES);

Спустя 58 минут, 59 секунд (18.06.2011 - 23:28) #8bit написал(а):
Вот что у меня получается. Если делаю проверку только на загрузку, все нормально:

echo '<pre>';
var_dump ($_FILES['usrf']);
echo '</pre>';

$file_tmp = isset($_FILES['usrf']['tmp_name']) ? $_FILES['usrf']['tmp_name'] : null;

if (is_uploaded_file($file_tmp))
{
echo "Файл $file_tmp загружен нормально";
}

выводится массив и сообщение об успешной загрузке. Но когда я пытаюсь его переместить:

if (is_uploaded_file($file_tmp))
{
echo "Файл $file_tmp загружен нормально";
$file_name = isset($_FILES['usrf']['name']) ? $_FILES['usrf']['name'] : null;
move_uploaded_file ($file_tmp, "/userfile/".$file_name);
}

то выводятся ошибки
Цитата

array(5) {
  ["name"]=>
  string(8) "text.txt"
  ["type"]=>
  string(10) "text/plain"
  ["tmp_name"]=>
  string(37) "X:\home\localhost\www\tmp\php873B.tmp"
  ["error"]=>
  int(0)
  ["size"]=>
  int(15942)
}
Файл X:\home\localhost\www\tmp\php873B.tmp загружен нормально
Warning: move_uploaded_file(/userfile/text.txt) [function.move-uploaded-file]: failed to open stream: No such file or directory in X:\home\localhost\www\Spec\upload.php on line 13

Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move 'X:\home\localhost\www\tmp\php873B.tmp' to '/userfile/text.txt' in X:\home\localhost\www\Spec\upload.php on line 13

То есть, как я понял он не может его переместить, а почему не пойму

Спустя 5 минут, 28 секунд (18.06.2011 - 23:33) Игорь_Vasinsky написал(а):
Цитата
move_uploaded_file ($file_tmp, "/userfile/".$file_name);


может с путём путается, попробуй:

"./userfile/".$file_name"


если папка userfile в корне

Спустя 18 минут, 50 секунд (18.06.2011 - 23:52) #8bit написал(а):
Блин надо было перед /userfile/ слеш убрать

"userfile/".$file_name

сейчас все заработало, спасибо за помощь!

Спустя 6 минут, 12 секунд (18.06.2011 - 23:58) Игорь_Vasinsky написал(а):
да..была такая идея.

Авообще - юзай
$_SERVER['DOCUMENT_ROOT']

а спасибо в......
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.