使用Fine Uploader上传缩放文件时出现奇怪的行为

时间:2014-03-26 15:12:16

标签: coldfusion fine-uploader

我已经实现了FileUploader 4.4,它在使用Coldfusion上传多个文件时效果很好。

终点代码非常简单,如下所示:

<cffile action="upload"
                destination="#application.Config.imageDir#"
                nameconflict="overwrite" 
                filefield="FORM.qqFile" />
            <cfif CFFILE.contenttype EQ "image" OR ListFindNoCase("jpg,jpeg,gif,png", CFFILE.serverFileExt)>
                <cfset local.fileName = CFFILE.serverFile />
</cfif>

每当我上传单个或多个图像时,local.filename变量都会正确设置为您通常在qqfilename中看到的图像文件名值,例如“image0001.jpg”

发送此数据的javasript代码很简单:

 $('#fine-uploader').fineUploader({
             request: {
                endpoint: '<cfoutput>#application.Config.fineUploaderProxy#?cfc=#cfcName#&functionName=#functionName#</cfoutput>'
              }
    });

然而,只要我添加缩放,就会开始出现奇怪的行为。缩放版本被发送到我的上传处理程序,但是,正在发送的文件名对于每个缩放图像始终是“blob”,而不是我期望的名称,类似于 “image0001(小).JPG”

我为激活缩放而添加的代码只是:

 $('#fine-uploader').fineUploader({
            scaling: {
                    sizes: [
                        {name: "small", maxSize: 50}
                    ]
                },
            request: {
                endpoint: '<cfoutput>#application.Config.fineUploaderProxy#?cfc=#cfcName#&functionName=#functionName#</cfoutput>'
              }
    });

有人可以帮我解释为什么文件名“blob”与qqfile而不是实际的文件名一致吗?我使用的是最新版本的Chrome。

由于

1 个答案:

答案 0 :(得分:5)

这是因为Fine Uploader在从参考文件生成缩放版本时实际上并未发送File。该实体具体为Blob。虽然File具有名称属性,但Blob却没有。正因为如此,浏览器在为Blob构建多部分片段时,将filename参数设置为&#34; blob&#34;。有办法克服这个问题,但不能可靠地跨浏览器。因此,Fine Uploader将始终在&#34; qqfilename&#34;中发送实际文件名。参数。您的服务器应该查看此值以在所有情况下可靠地确定文件名。