我正在尝试设置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

09-30 14:29