K_C*_*ruz 7 coldfusion mime mime-types
我正在尝试检测网络服务器上文件库的文件类型,因为我们正在实现旨在安全地将文件流式传输到浏览器的代码.以前,文件存储并通过直接href呈现给用户.
我尝试过3种不同的方式,都在我的本地机器上(这不是模拟的生产环境):
将变量设置为函数getPageContext().getServletContext().getMimeType()返回的值.这会检测文件的一些但不是所有mime类型.
从coldfusion.util.MimeTypeUtils创建一个对象并调用函数guessMimeType().这也会检测文件的一些但不是所有mime类型.
cffile action ="读取"库中的文件.这是我老板推荐的解决方案,因为他在文件中使用了cffile action ="upload"来自一个表单(并说它有效),但是当我使用它时,cffile结构总是空白的.
理想情况下,我想以100%的准确率检索位于服务器上的每个文件的mime类型.我编写的代码检测到我的repo副本中大约99%的文件,剩下大约30个无法识别的文件.其中包括具有新-x扩展名的MS office文件和tgz压缩文件.
我想知道是否有一种确定的方法来检测服务器上存在的任何给定文件的mime类型,通过使用CF代码来查看它,并且正在使用的代码将在生产服务器上工作安装的应用程序很少?据我所知,我引用的第一个函数使用OS的mime类型库,而第二个函数使用java对象中的预定列表作为mime-types.在Google和SO上搜索并没有产生任何告诉我CF可以自己准确检测文件mime类型的东西,也没有看到任何说明无法完成的事情.
编辑:这是在CF8环境中.
不会有 100% 保证万无一失的方法,因为 mime 类型是任意映射。
您将需要使用某人的映射,无论是操作系统还是 JVM。
您有责任填写操作系统或 JVM 在映射中的任何空白,并使其保持最新。
但是,我总是能够创建一些文件,给它一个扩展名 .xyzzy,而你将无法找到它的“mime 类型”。
| 归档时间: |
|
| 查看次数: |
2170 次 |
| 最近记录: |