Я пытаюсь отладить проблему с помощью WordPress 3.5.1, где я вообще не могу загружать медиа через HTTP; загрузчик мультимедиа просто говорит «Ошибка HTTP» и терпит неудачу. Чтобы диагностировать, что происходит, я решил написать (то есть копию из w3schools) действительно базового загрузчика файлов PHP, чтобы узнать, есть ли что-то странное, что происходит за кулисами. Но по какой-то причине $_FILE
структура не содержит какой-либо информации на всех, даже в самых простых примеров:Загрузка основного изображения PHP не работает
file.php:
<html>
<body>
<form action="upload.php" method="post" enctype="multipart/form-data">
<label for="file">Filename:</label>
<input type="file" name="file" id="file"><br>
<input type="submit" name="submit" value="Submit">
</form>
</body>
</html>
upload.php:
<?php
if ($_FILES["file"]["error"] > 0)
{
echo "Error: " . $_FILES["file"]["error"] . "<br>";
}
else
{
echo "Upload: " . $_FILES["file"]["name"] . "<br>";
echo "Type: " . $_FILES["file"]["type"] . "<br>";
echo "Size: " . ($_FILES["file"]["size"]/1024) . " kB<br>";
echo "Stored in: " . $_FILES["file"]["tmp_name"];
}
?>
В каждом браузере я пробовал, с каждым файлом я пробовал, это просто выводит:
Upload:
Type:
Size: 0 kB
Stored in:
и печать $_FILES
показывает, что это всего лишь пустой массив.
Я использую PHP-5
на общем хостинге (Lunarpages), но файл php.ini
имеет file_uploads
на и размер файлов я пытался нигде даже близко к upload_max_filesize
. Я готов бросить свой ноутбук на стену, поэтому любая помощь спасет мне пару тысяч долларов.
Что выводит, когда вы отбрасываете if/else и просто помещаете ' Php error_reporting_ (E_ALL); ini_set ('display_errors', true); print_r ($ _ FILES); ?> 'в скрипте? – DanFromGermany
^^ Правда. Тем не менее, это довольно простой пример, и результат довольно патологический. Я не беспокоюсь о безопасности и всем этом джазе, я просто хочу убедиться, что PHP работает так, как должно. –
У вас есть права на запись в эту папку? –