作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我通过ajax发送一个包含上传文件的FormData对象,但是当我尝试上传大文件(> 5M)时,我收到空的$_POST和$_FILES变量。
读了很多关于这个问题的帖子,我几乎应用了所有内容,但没有奏效。
I've tried on php.ini:
- max_execution_time = 300
- max_input_time = 300
- post_max_size = 2048M (large but compulsory)
- upload_max_filesize = 2048M (large but compulsory)
- max_input_vars = 2000 (trying different values)
On HTTP/HTTPS directives (some have no sense but I was trying in a desperately way to see the behaviour):
- FcgidConnectTimeout 300
- FcgidIOTimeout 300
- FcgidIdleTimeout 300
- FcgidBusyTimeout 300
- IPCCommTimeout 9999
- FcgidMaxRequestLen 21474836480
我的代码如下所示:
var form = $('form[name="myform"]');
var formData = new FormData(form[0]);
/*
Also tried this:
var file = $("form[name='myform'] input[name='filename']");
formData.append("my_upload", (file[0]).files[0]);
*/
$.ajax({
type: 'post',
data: formData,
dataType: 'json',
async: true,
url: '/mysite/controllers/Controller.php',
processData: false,
contentType: false,
...
});
因此,对于 < 5M 的文件,在我的本地服务器和生产服务器上一切都完美。对于> 5M 的文件仅适用于我的本地服务器,但不适用于生产服务器(我在其中收到空的 $_POST 和 $_FILES 变量)。尽管生产服务器位于 CloudFlare 上的 WAF 下,但它们通常具有一些变量配置。
最佳答案
我的设置也有同样的问题。我没有使用 jQuery,而是使用 vanilla js。
问题不是服务器!如果您查看浏览器的开发人员工具,您会发现 HTTP 请求没有表单数据。
小上传<6MB即可
大上传 >=6MB 不会创建 FormData:
我的代码是:
function uploadFile(file, filename, domDirectory, domTabelle, domSchluessel){
var fd = new FormData();
fd.append("filename", filename);
fd.append("name", filename);
fd.append("right_id", domDirectory);
fd.append("tabelle", domTabelle);
fd.append("schluessel", domSchluessel);
var xhr = new XMLHttpRequest();
var reader = new FileReader();
reader.addEventListener("load", function () {
fd.append("dataURI", reader.result);
//console.log(reader.result);
xhr.send(fd);
}, false
);
reader.readAsDataURL(file);
xhr.open('POST', '../control/Upload.php', true);
}
关于javascript - 使用 formData 的 Ajax 文件上传在大文件上失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56343731/
我有以下正则表达式 /[a-zA-Z0-9_-]/ 当字符串只包含从 a 到z 大小写、数字、_ 和 -。 我的代码有什么问题? 能否请您向我提供一个简短的解释和有关如何修复它的代码示例? //var
我是一名优秀的程序员,十分优秀!