Я попытался написать базовый сценарий загрузки php, и он не работает. Вот HTML:Загрузка файла PHP не работает
<html>
<body>
<form action="home.php" method="post" enctype="multipart/form-data">
<input type="file" name="files_to_upload">
<input type="hidden" name="MAX_FILE_SIZE" value="262144000">
<input type="submit" value="upload">
</form>
</body>
</html>
А вот PHP:
<?php
if (isset($_FILES['files_to_upload'])){
if(@is_uploaded_file($_FILES['files_to_upload']['tmp_name'])) {
echo "<br>";var_dump($_FILES);echo "<br>";
if (move_uploaded_file($_FILES['files_to_upload']['tmpname'],'/home/user/pdf/'))
echo '<script>alert("moved");</script>';
}
}
?>
Я не получаю moved
предупреждение, поэтому последняя функция возвращает ложь, я думаю. Вот var_dump
из $_FILES
:
array(1) { ["files_to_upload"]=> array(5) {
["name"]=> string(15) "O0903f21011.pdf
["type"]=> string(15) "application/pdf"
["tmp_name"]=> string(14) "/tmp/phpgaSHzm"
["error"]=> int(0) ["size"]=> int(314758) }
}
Edit: каталог /home/user/pdf
имеет все права, предоставленные всем пользователям.
Символ * * назначения должен быть именем файла. Вы используете каталог. Попробуйте что-то вроде '/ home/user/pdf/'. $ _FILES ['file_to_upload'] ['name'] ' – Phil
@Phil Я просто попробовал также с именем файла, это то же самое. Я не получаю последнее предупреждение. – sleax
По соображениям безопасности я бы посоветовал вам ограничить размер файла на стороне сервера, в вашем php, а не в форме. любой хакер может использовать вашу скрытую форму ввода с помощью firefox и может изменить ее. Так же, как совет, вы не об этом. – Mubo