У меня есть HTML-форма следующего вида:
<form id="addTrack" action="/worship/script/upload.php" method="post" enctype="multipart/form-data">
<label>File:</label>
<input type="file" name="uploaded" id="addTrackFile"/>
<label>Key Title: </label>
<input type="text" name="title" id="addTrackTitle"/>
<input type="hidden" name="id" id="addTrackId"/><br>
</form>
<button onclick="uploadAddTrack()">Upload</button>
<button onclick="closeAddTrack()">Close</button>
Когда я отправляю форму, файл загружается на сервер правильно, но когда он перенаправляется на сценарий действия PHP, он останавливается при первой ошибке. Затем скрипт сбрасывает переменную $_FILES
, которую возвращает как пустой массив. Как вы можете видеть в приведенном ниже коде, он также выводит ошибку, но также выводит пустую строку.
Почему я не получаю файл в массиве $_FILES
?
Мой PHP-код:
$id=$_POST["id"];
$name=$_POST["title"];
$name = str_replace(" ","",$name);
$allowed_filetypes = array('.mp3','.m4a','.wav','.wma');
$filename = $_FILES['uploaded']['name'];
$ext = substr($filename, strpos($filename,'.'), strlen($filename)-1);
$target = "../audio/";
$target = $target . $id. "_".$name.$ext;
$ok=1;
if ($_FILES['uploaded']['error'] !== UPLOAD_ERR_OK) {
//------------This is where it gets stopped-----------------//
var_dump($_FILES);
echo $_FILES["uploaded"]["error"];
return;
}
if(!in_array($ext,$allowed_filetypes))
die("This file type is not allowed");
if(move_uploaded_file($_FILES['uploaded']['tmp_name'], $target))
{
include("updateDB.php");
header("Location:/worship/cpanel/?autoload=$id");
}
Размер файла, который я загружаю, составляет 9 МБ.
Моя релевантная информация о php.ini
file_uploads: включен
upload_max_filesize: 25M
upload_tmp_dir: нет значения
max_post_size: 8M
ls -l
. Если это сервер Windows, щелкните правой кнопкой мыши каталог и просмотрите разрешения учетной записи IIS_USR. - person mituw16   schedule 11.01.2014$("form#addTrack").submit();
- person David   schedule 11.01.2014755
означает доступный для чтения, исполняемый всеми, но доступный для записи только владельцу файла. - person mituw16   schedule 11.01.2014ls -l
, кто был в списке до 755? - person mituw16   schedule 11.01.2014777
, либо с помощью командыchown
сделать так, чтобы веб-сервер стал владельцем каталога. - person mituw16   schedule 11.01.2014; Maximum size of POST data that PHP will accept. post_max_size = 8M
- person Panama Jack   schedule 11.01.2014