Я пытаюсь запустить скрипт загрузки PHP, кажется, что HTML-код работает, но PHP продолжает возвращать неудачный результат. Я использую хостинг iPage. Вот мой сценарий:
<?php
if(isset($_FILES['userfile'])){
$uploaddir = '/var/www/uploads/';
$uploadfile = $uploaddir . basename($_FILES['userfile']['name']);
echo "<p>";
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
echo "File is valid, and was successfully uploaded.\n";
} else {
echo "Upload failed";
}
echo "</p>";
echo '<pre>';
echo 'Here is some more debugging info:';
print_r($_FILES);
print "</pre>";
} else {
?>
<form enctype="multipart/form-data" action="" method="POST">
<input type="hidden" name="MAX_FILE_SIZE" value="512000" />
Send this file: <input name="userfile" type="file" />
<input type="submit" value="Send File" />
</form>
<?php
}
?>
Комментируйте, чтобы ответить, чтобы закрыть вопрос, так как это было проблемой, и то, и другое.
Проверьте, доступна ли папка. Если это так, попробуйте относительный путь вместо того, что вы используете сейчас.
Т.е.: $uploaddir = 'uploads/';
Убедитесь, что каталог загрузки имеет правильные разрешения - Writable and Proper Owner
Вы столкнетесь с проблемами, когда размер файла превышает 512000, вы должны проверить размер файла с помощью массива $ _FILE и вернуть сообщение об ошибке. Просто предложение, как вы уже закрыли это.
// Error Checking Extended
if($_FILES['userfile']['error'] == 2) {
echo "You've exceeded the maximum file upload size of 512kb.";
return false;
}
$uploaddir = 'uploads/';
есть:$uploaddir = 'uploads/';