我正在尝试设置FineUploader的测试实现,但是我遇到了分块问题。我已将debug设置为true,并且一切顺利,直到出现以下错误:
“ [Fine Uploader 5.0.2]所有块均已上传为0-正在完成...。” custom.fineuploader-5.0.2.js:207
“ [[Fine Uploader 5.0.2]提交对0的所有块完成请求”” custom.fineuploader-5.0.2.js:207
“ [[Fine Uploader 5.0.2]正在发送0的POST请求” custom.fineuploader-5.0.2.js:207
“ [Fine Uploader 5.0.2]收到的响应状态为200,正文为:{“错误”:“服务器错误。不是一个多部分的请求。请将forceMultipart设置为默认值(true)。“,” uploadName“:null,” template“:”未定义“,” category“:”未定义“}” custom.fineuploader-5.0.2.js:207
“ [Fine Uploader 5.0.2]成功完成为0的工作”
底部错误显示为“服务器错误。不是多部分请求。请将forceMultipart设置为默认值(true)。”,但据我所知,它已经以这种方式设置。这是我在代码中所拥有的:
var uploadHandler = $('#fine-uploader').fineUploader({
debug: true,
request: {
endpoint: 'server/endpoint.php',
forceMultipart: true,
params: // send the values to backend file (endpoint.php)
{
template:function() {
return $("#price_template_id").val();
},
category:function(){
return $("#category_id").val();
}
}
},
validation: { // validation for the images uploaded
allowedExtensions: ['jpeg', 'jpg'],
sizeLimit: 20971520 // 20 MB = 20 * 1024 * 1024 bytes 20971520
},
editFilename: {
enabled: true
},
display: { //display image on upload
fileSizeOnSubmit: true
},
resume: { //enable resume on upload
enabled: true
},
retry: { //enable retry on upload
enableAuto: true
},
forceMultipart: {
enabled: true
},
chunking: { //enable chunking on upload
concurrent: {
enabled: true
},
enabled: true,
partSize: 200000, //200KB per chunk
success: {
endpoint: 'server/endpoint.php'
}
},
template: "qq-template",
autoUpload: true,
showMessage: function(message) { //show message if any error occur during uplaod process
alert(message);
}
})
您可以在此处查看/测试实现:http://web3.instaproofs.com/temp/fineuploaderv3/
有什么想法我做错了吗?
谢谢!
最佳答案
您的服务器未正确处理“已完成所有块”的POST请求。这不是多部分编码的请求。最后一块成功上传到服务器后,它由Fine Uploader发送。该POST包含URL编码的消息正文,其中包含有关已完成的分块文件的信息。您的服务器应合并与该文件关联的所有块,然后进行适当响应。更多信息,请参见http://docs.fineuploader.com/branch/master/features/concurrent-chunking.html#server-side-implications。