Rest 让dropzone.js进行原始上传

Rest 让dropzone.js进行原始上传,rest,dropzone.js,Rest,Dropzone.js,我喜欢使用dropzone.js将文件上传到类似REST的服务器。虽然dropzone.js可以将请求方法切换到PUT,但它仍然发送类似于多部分文件上传的内容。我的服务器希望原始数据作为单个ressourcePUT方法的主体,所以上传的文件将包含多部分分隔符 我如何告诉dropzone.js将原始数据放入请求正文中,不能多也不能少?请参考我写的答案: 添加以下选项,然后开始工作 myDropzone.options.sending = function(file, xhr) { var _s

我喜欢使用dropzone.js将文件上传到类似REST的服务器。虽然dropzone.js可以将请求方法切换到
PUT
,但它仍然发送类似于多部分文件上传的内容。我的服务器希望原始数据作为单个ressource
PUT
方法的主体,所以上传的文件将包含多部分分隔符


我如何告诉dropzone.js将原始数据放入请求正文中,不能多也不能少?

请参考我写的答案:

添加以下选项,然后开始工作

myDropzone.options.sending = function(file, xhr) {
  var _send = xhr.send;
  xhr.send = function() {
    _send.call(xhr, file);
  }
}

下面是另一个方法,它使用作为Dropzone选项传入的params函数修补xhr。此方法也适用于分块文件。下面的分块执行路径还添加了使用OneDrive API进行可恢复文件上载所需的头,如下所述:

const CHUNK\u SIZE=10485760//10MiB
Dropzone.options.Dropzone={
方法:“放”,
标题:{
“缓存控制”:null,
“X-Requested-With”:null
},
文件大小数据库:1024,
maxFilesize:102400,//100G(MB),最大onedrive文件大小
分块:没错,
chunkSize:CHUNK\u SIZE,
参数:函数(文件、xhr、块){
如果(块){
常量chunk\u start=(chunk.index*chunk\u大小)
xhr.setRequestHeader('Content-Range',
“字节”+chunk\u开始
+“-”+(chunk_start+chunk.dataBlock.data.size-1)
+“/”+文件[0]。大小)
var\u send=xhr.send
xhr.send=函数(){
_调用(xhr,chunk.dataBlock.data)
}
}否则{
var\u send=xhr.send
xhr.send=函数(){
_send.call(xhr,文件[0])
}
}
}
}