此代码曾经与ColdFusion 9配合使用:
<cfif form.btnSaveImage EQ "Upload">
<cftry>
<cffile accept="image/*" action="upload" destination="C:\T" filefield="vcImageFile" nameconflict="overwrite">
<cfcatch type="Any">
<cfdump var="#cfcatch#" label="cfcatch">
</cfcatch>
</cftry>
</cfif>
<form action="<cfoutput>#cgi.SCRIPT_NAME#</cfoutput>" method="post" name="frmImagesAdd" id="frmImagesAdd" enctype="multipart/form-data">
<label for="vcImageFile">Image File*:</label><br>
<input type="file" name="vcImageFile" id="vcImageFile" size="40" maxlength="255" message="Image file is required to upload."><br>
<input type="hidden" name="btnSubmit" value="Add Image">
<input name="btnSaveImage" type="submit" value="Upload">
</form>
问题是cffile标记的accept="image/*"
属性。在ColdFusion 9中,此通配符用于接受MIME类型以“image /”开头的任何文件。在ColdFusion 10中,我收到以下错误消息:
“上传的文件图片/ jpeg的MIME类型或扩展名为 服务器不接受。“
MimeType值为“image / jpeg”,因此它应该与通配符一起使用。
我查看了wikidocs for the cffile tag并说明了这一点:
ColdFusion 10:对属性的修改接受}}
但是,它没有详细说明这些修改是什么!
查看upload action docs,它表示它将接受以逗号分隔的mime类型列表。这是否意味着不再接受通配符?
答案 0 :(得分:1)
仅供参考,这篇博文在去年的同一时间也出现了同样的问题:
http://www.cutterscrossing.com/index.cfm/2013/2/21/ColdFusion-10-File-Uploads-and-MIME-Types
现在,我记得CF中的MIME类型检查有变化 10,但我并不完全确定。这段代码,由我们之一编写 开发人员几个月前,将允许任何“图像”MIME类型。 我们发现我们不能做这种通配符 根据CF 10进行映射,我们现在必须列出每个接受的MIME 键入逗号分隔列表。