1

Coldfusion 8、Apache、Mac OS X 服务器 10.5。

我有一个允许用户上传图像的网络应用程序。但是,它总是无法上传 TIFF 文件。JPEG、GIF 和 PNG 上传就好了,这个问题似乎只存在于 TIFF。

用户通过表单中的 cfinput 标签选择要上传的图像。提交表单后,我尝试使用 cfimage 标记重命名和移动文件。对于 JPEG、PNG 等,这非常有效,但如果图像是 TIFF,则会出错:

“ColdFusion 无法从指定的源文件创建图像。请确保该文件是有效的图像文件。”

接下来,我将 cfimage 标记更改为 cffile 标记,以尝试使用不同的方式重命名和移动上传的图像,但这会导致错误:

“上传的文件 video/x-ms-wm 的 MIME 类型未被服务器接受。只能上传 image/* 类型的文件。”

所以,ColdFusion 似乎认为 TIFF 是视频。我加倍检查了/Applications/ColdFusion8/runtime/lib/mime.types,其中包含

图片/tiff tiff tif

......就像它应该做的那样。为什么 ColdFusion 不能正确获取 TIFF 的 MIME 类型?

非常感谢!

4

2 回答 2

3

上传文件的 MIME 类型由浏览器提供,这意味着它不可靠。

您没有提供任何代码示例,但我猜您在标签中使用了接受属性。尝试删除它,看看事情是否按预期工作。

使用accepts属性不是确定文件是否属于某种类型的可靠方法,因为它是由浏览器提供的,因此不能被信任。相反,您应该查看扩展名,如果您真的想要安全,请使用检查实用程序检查文件并确保它是扩展名所说的内容。

您可以在 Pete Freitag 的博客上阅读有关他的更多信息。http://www.petefreitag.com/item/701.cfm

于 2011-09-15T02:49:04.810 回答
1

来自CF 9 发行说明

79685 CF图像

在 Mac OS X Snow Leopard 上,cfimage标签不支持 TIFF 图像进行读/写操作,getReadableImageFormats并将getWriteableImageFormatsTIFF 列为支持的图像格式。

于 2012-10-27T20:38:24.907 回答