2014-03-26 41 views
3

我已经实现了FileUploader 4.4,当使用Coldfusion上传多个文件时,它可以很好地工作。使用Fine Uloader上传缩放文件时出现的奇怪现象

终点代码非常简单,看起来像这样:

<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>' 
       } 
    }); 

但是,只要我添加比例,那么ST范围行为开始发生。缩放版本被发送到我的上传处理程序,但是,正在发送的文件名称对于每个缩放图像都是“blob”,而不是我所期望的名称,就像 “image0001(small).jpg”

我加入到激活缩放的代码很简单:

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

可能有人请帮助我,为什么文件名“斑点”与qqfile,而不是实际的文件名是?我正在使用最新版本的Chrome。

感谢

回答

5

这是由于这样的事实,精细上传实际上并没有发送File时,它产生的缩放版本关闭参考文件。该实体具体为Blob。虽然File具有名称属性,但Blob不具有。正因为如此,浏览器在构建Blob的多部分段时,将filename参数设置为“blob”。有办法可以克服这一点,但不能可靠地跨浏览器。因此,Fine Uploader将始终将实际文件名称发送到“qqfilename”参数中。您的服务器应该查看此值以在所有情况下可靠地确定文件名。

+1

完美,谢谢!我所要做的就是正常上传图像,导致CFFILE.serverFile名称为“blob”,然后将其重命名为服务器上的FORM.qqfilename属性。问题解决了。 – Cheeky

相关问题