我遇到了ColdFusion 10的问题。代码已经工作了,我不确定是什么改变了 - 代码本身在这个领域几个月没有改变。
我的cffile看起来像这样:
<cffile action="upload" filefield="fileLocation"
destination="#destination#"
nameConflict="Overwrite"
accept="application/vnd.ms-excel,text/csv"
result="upload">
我正在上传.csv文件。我得到的错误是这个(cfcatch.message然后cfcatch.detail):
The MIME type or the Extension of the uploaded file text/plain was
not accepted by the server.
Only files of type application/vnd.ms-excel,text/csv can be uploaded.
Verify that you are uploading a file of the appropriate type.
在Firebug中,Net条目的Post部分如下所示:
Content-Disposition: form-data; name="fileLocation"; filename="myfilename.csv"
Content-Type: application/vnd.ms-excel
如果我拿走了accept =“”属性,然后执行了#upload#的cfdump,我得到:
CONTENTSUBTYPE vnd.ms-excel
CONTENTTYPE application
或者,换句话说,CF正在接收 Firefox正在发送的应用程序/ vnd.ms-excel。但是。它导出的mime类型是text / plain。
我已经检查过该文件 - 它是CSV格式的,与之前上传的文件相同。我已将文件重命名为.txt,然后重新命名为.csv,以防万一它与扩展相关的问题。同样的错误。我已经确认我没有打开文件。
我的用户正在使用我们的生产服务器试试这个。我正在使用我们的开发服务器。无论它是什么,它都不是特定于单个服务器。
有没有人理解为什么它会出现text / plain?如果它正在获得application / octet-stream,我会模糊地理解它; text / plain只是......令人困惑。
答案 0 :(得分:0)
解决方案:
将属性设为strict =&#34; false&#34;进入<cffile>
标记。
即使默认设置为false,也要设置strict而不是依赖默认设置。
另请查看此更改为cffile的其他CF10更改:https://wikidocs.adobe.com/wiki/display/coldfusionen/cffile