Chrome 89.0.4389.90
FireFox 86.0.1
OS: Windows 10 20H2
服务端: PHP 7.4.9
集成环境: Wampserver x64
// 传入一个参数 file, 类型为 File.
var chunkSize = 8388608;
var formData = new FormData;
formData.set('chunk', file.slice(0, chunkSize));
new Promise((resolve, reject) => {
$.ajax({
url: chunk_url,
type: 'POST',
data: formData,
cache: false,
contentType: false,
processData: false,
success: function success() {
// 更新进度条的代码...
resolve();
},
error: function error(jqXHR, textStatus) {
conosle.error(textStatus);
reject(textStatus);
}
});
});
搞了两个晚上了, 试了各种奇奇怪怪的方法都没有用.
当请求之后开发者工具里面请求中没有找到 POST 参数.
然后用 Firefox 的开发者工具查看的时候会出现一行请求已被截断.
接下来我尝试去改 php 的配置, 具体是这三个参数:
post_max_size = 256M
max_input_vars = 2500
upload_max_filesize = 128M
然后发现依然没有用, POST 参数依然不会去到后端, 也不会显示在请求里面.
最后我直接把整个 file 给丢到 FormData 里面发现请求可以正常发送, 工具里也能看到所有 POST 参数并且后端也能拿到...
邪门了...
Blob.slice
处理的问题.所以这到底是我系统的问题还是怎样, 脑壳大...
麻烦各位大佬看看了...
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.