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

Pao*_*rdo 3 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>
Run Code Online (Sandbox Code Playgroud)

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

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

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

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

我添加的用于激活缩放的代码很简单:

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

有人可以帮助我,为什么文件名"blob"与qqfile而不是实际的文件名?我使用的是最新版本的Chrome.

谢谢

Ray*_*lus 5

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