Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > Загрузка файлов


Автор: Zorak 14.4.2013, 18:56
Здраствуйте форумчани. И так у меня вопрос про все ту же загрузку файлов на сервер.
код до банальности простой. Хочу сначала добится его работоспособности, а потом уже расширять...:
Код

<?php
echo "<form enctype='multipart/form-data' action='test' method='POST'>";
    echo "Отправить этот файл: <input name='userfile' type='file'>";
    echo "<input type='submit' value='Send File' name = 'go'>";
echo "</form>";

if (isset($_POST['go']))
{
echo "<pre>";
var_dump($_FILES);
echo "</pre>";
}
?>


Результат дампа:
Код

array(1) {
  ["userfile"]=>
  array(5) {
    ["name"]=>
    string(5) "1.txt"
    ["type"]=>
    string(10) "text/plain"
    ["tmp_name"]=>
    string(14) "/tmp/phpEO2N3D"
    ["error"]=>
    int(0)
    ["size"]=>
    int(353)
  }
}


И некоторые настройки:
Код

file_uploads:  ON
upload_max_filesize: 8M
upload_tmp_dir: /tmp
post_max_size: 8M
Premissions /tmp: 777
Версия PHP: 5.3


По сути, код ошибки равен нулю, т е ошибок нету, но какбы самого файла тоже нету ))))

Я в растерянности(...
Помогите кто чем может -=).. спасибо

Автор: Sanchezzz 14.4.2013, 21:12
Загруженный файл через форму во временной папки живет только в течении работы скрипта, по завершению работы скрипта файл удалится.
Используйте функцию move_uploaded_file для перемещения файла в нужный каталог.

Автор: Zorak 14.4.2013, 21:17
Понял, спасибо большое, ша будем пробовать

Автор: Zorak 14.4.2013, 21:42
И так результат.... Для начала новый код
Код

<?php
echo "<form enctype='multipart/form-data' action='test' method='POST'>";
    echo "Отправить этот файл: <input name='userfile' type='file'>";
    echo "<input type='submit' value='Send File' name = 'go'>";
echo "</form>";

$uploaddir = 'ufiles/';
$newFileName=date('YmdHis').rand(10,100).'.txt';
$uploadfile = $uploaddir.$newFileName;

echo $uploadfile;
 
if (move_uploaded_file($_FILES['uploadfile']['tmp_name'], $uploadfile))
 echo "Выбранный файл загружен.\n";
else
 echo "Ошибка загрузки файла.\n";

if (isset($_POST['go']))
{
echo "<pre>";
var_dump($_FILES);
echo "</pre>";
}
?>


Результат: Ошибка загрузки файла... Может гдето код не правильный ?

Автор: Sanchezzz 14.4.2013, 22:22
Директория должна быть доступна для записи + лучше использовать полный путь $_SERVER['DOCUMENT_ROOT'] . "/dir/1.txt"

Автор: krypt3r 15.4.2013, 08:10
Цитата

Код

if (move_uploaded_file($_FILES['uploadfile']['tmp_name'], $uploadfile))


У вас элемент формы называется userfile, а вы пишете uploadfile

Автор: Zorak 26.4.2013, 15:45
АГа, уже уидил.. как всегда я  своем стиле.. спасибо большое) Вопрос решен.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)