我在使用 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 发送的 application/vnd.ms-excel。但是。它派生的 mime 类型是 text/plain。
我检查了文件 - 它是 CSV 格式,与之前上传的格式相同。我已将文件重命名为 .txt,然后又重命名为 .csv,以防万一这是与扩展相关的问题。同样的错误。我已经确认我没有打开文件。
我的用户正在使用我们的生产服务器来尝试这个。我正在使用我们的开发服务器。因此,无论它是什么,它都不是特定于单个服务器的。
有谁明白为什么会出现文本/纯文本?如果它正在获取应用程序/八位字节流,我会模糊地理解它;text/plain 只是......令人困惑。