我正在做一个需要将大文件上传到服务器端的项目。我决定使用 HTML5 FileReader 和 jQuery 以块(ArrayBuffer)的形式上传文件。
我通过将块转换为base64字符串成功完成了这项任务,通过jQuery.post发送到后端服务器,数据参数为JSON格式。
例如
$.ajax({
url: "/Home/Upload",
type: "POST",
data: {
name: block.name,
index: block.index,
base64: base64
},
processData: true
});
但我想优化这段代码,因为 base64 太大而无法转换。我想知道我是否可以直接通过$.ajax
.
我知道如果我设置processData: false
ArrayBuffer 并将其放入 data 参数中,它可以作为Request.InputStream
. 但是这样我就无法附加其他数据,例如name
和index
。
我想知道我可以在一个ajax调用中单独发送原始ArrayBuffer(或blob,二进制)和我的其他数据(名称,索引)。