首页 文章

PHP - 在Azure上大文件上载后,$ _FILES为空

提问于
浏览
0

我使用ng-file-upload插件(https://github.com/danialfarid/ng-file-upload)设置了一个基于Angular的文件上传,我一直用PHP脚本处理文件上传 .

文件上载和脚本适用于较小的文件(在<1MB上测试),但在较大的文件(9MB)上失败 . 这让我相信存在文件上传问题 . 但是,我已经使用一行在/ wwwroot文件夹中创建了一个.user.ini文件:

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'];

该脚本失败,因为$ _FILES数组中的'file'未定义 - 因为$ _FILES数组为空 .

谢谢!

1 回答

  • 1

    PHP有一个令人困惑的做文件上传 . 要设置更大的上传大小,您应该同时设置 upload_max_filesizepost_max_size . 这些可以是独立的不同值,因为它们做不同的事情 .

    post_max_size 是可以在POST请求中发送到PHP脚本的最大文件大小 . upload_max_filesize 是通过 any 方法允许的最大文件大小 .

相关问题