PHP загрузка не работает

0

Я пытаюсь запустить скрипт загрузки 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
}
?>
  • 2
    Проверьте, доступна ли папка для записи. Если это так, попробуйте относительный путь вместо того, что вы используете сейчас. $uploaddir = 'uploads/'; есть: $uploaddir = 'uploads/';
  • 1
    Спасибо, Фред. Нужно сделать оба, чтобы заставить это работать :)
Показать ещё 4 комментария
Теги:
file-upload

2 ответа

2
Лучший ответ

Комментируйте, чтобы ответить, чтобы закрыть вопрос, так как это было проблемой, и то, и другое.

Проверьте, доступна ли папка. Если это так, попробуйте относительный путь вместо того, что вы используете сейчас.

Т.е.: $uploaddir = 'uploads/';

0

Убедитесь, что каталог загрузки имеет правильные разрешения - 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;
    }

Ещё вопросы

Сообщество Overcoder
Наверх
Меню