Я настроил загрузку файлов на основе Angular с помощью плагина ng-file-upload (https://github.com/danialfarid/ng-file-upload) и я занимался загрузкой файлов с помощью сценария PHP.
Загрузка файла и скрипт работают с небольшими файлами (проверено на < 1MB), но не на файл большего размера (9MB). Это заставляет меня поверить, что есть проблема с загрузкой файлов. Однако я уже создал файл .user.ini в папке / wwwroot в одну строку:
upload_max_filesize=20M
Есть ли другая причина, по которой массивы $ _FILES и $ _POST будут пустыми?
Код JS:
Upload.upload({
url: '/scripts/receiveFile.php',
file: file
}).then(function(resp) {
console.log(resp.data);
}, function(resp) {
console.log(resp.data);
}, function(evt) {
var progressPercent = parseInt(100.0 * evt.loaded / evt.total);
console.log(progressPercent + "%");
});
HTML-код:
<div>
<h1>Upload</h1>
<input type="file" accept=".zip" ngf-select="submitFile($file)"></input>
</div>
PHP-код:
$file_name = basename($_FILES['file']['name']);
$file_tmp_name = $_FILES['file']['tmp_name'];
Сценарий завершается ошибкой, поскольку ‘file’ не определен в массиве $ _FILES — потому что массив $ _FILES пуст.
Спасибо!
PHP сбивает с толку делать загрузку файлов. Чтобы установить больший размер загрузки, вы должны установить оба upload_max_filesize
а также post_max_size
, Это могут быть разные значения, так как они делают разные вещи.
post_max_size
максимальный размер файла, который может быть отправлен в запросе POST к сценарию PHP. upload_max_filesize
максимальный размер файла, разрешенный через любой метод.
Других решений пока нет …