Coldfusion 8,Apache,Mac OS X Server 10.5。
我有一个允许用户上传图片的网络应用程序。但是,它总是无法上传TIFF文件。 JPEG,GIF和PNG上传就好了,这个问题似乎只适用于TIFF。
用户通过表单中的cfinput标记选择要上传的图像。提交表单时,我尝试使用cfimage标记重命名和移动文件。对于JPEG,PNG等,这可以很好地工作,但如果图像是TIFF,则会出错:
“ColdFusion无法从指定的源文件创建图像。请确保该文件是vaild图像文件。”
接下来,我将cfimage标记更改为cffile标记,尝试以不同的方式重命名并移动上传的图像,但这会产生错误:
“服务器不接受上传文件video / x-ms-wm的MIME类型。只能上传图片/ *类型的文件。”
所以,似乎ColdFusion认为TIFF是视频。我加倍检查/Applications/ColdFusion8/runtime/lib/mime.types,其中包含
image / tiff tiff tif
......就像它应该的那样。为什么ColdFusion不能正确获取TIFF的MIME类型?
非常感谢!
答案 0 :(得分:3)
上传文件的MIME类型由浏览器提供,这意味着它不可靠。
您没有提供任何代码示例,但我猜您在标记中使用了接受属性。尝试删除它,看看是否按预期工作。
使用接受属性不是确定文件是否属于某种类型的可靠方法,因为它是由浏览器提供的,因此无法信任。相反,您应该查看扩展,如果您确实想要安全,请使用检查实用程序检查文件并确保它是扩展程序所说的内容。
您可以在Pete Freitag的博客上阅读更多关于他的信息。 http://www.petefreitag.com/item/701.cfm
答案 1 :(得分:1)
79685 CFIMAGE
在Mac OS X Snow Leopard上,
cfimage
标记不支持用于读/写操作的TIFF图像,但getReadableImageFormats
和getWriteableImageFormats
将TIFF列为支持的图像格式。