Есть 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']
а спасибо в......