如其他 cffile 上传问题所述,
GetPageContext().formScope().getUploadResource("myFormField").getName()
非常适合在实际执行 cffile 之前获取服务器上的文件名(对于 Railo 和 Lucee - ColdFusion 有不同的方法)但我注意到一个有趣的问题:如果浏览器是 IE,那么这将返回完整的源路径,包括文件名。另一方面,Firefox 和 Chrome 仅返回文件名。
对于我的应用程序,我需要完整路径,但当浏览器是 FireFox 或 Chrome 时无法找到它。如果有人有任何想法,我将不胜感激!
最佳答案
(从评论中扩展)
我不熟悉 getUploadResource()
函数。然而,翻看this related thread , 听上去好像返回的是客户端提交的文件信息。虽然有推荐指南,但最终 the value received on the server is whatever the browser chooses to send .它不是服务器端代码可以更改或控制的东西。因此,如果 Firefox 和 Chrome 返回的内容与 IE 不同,那你就不走运了。
(顺便说一句,我个人一直觉得 Internet Explorer 在这方面有点奇怪。传统浏览器是 restricted from certain file access operations for security reasons ,除非使用签名控件。所以你可能认为这些限制会禁止浏览器提交关于客户端文件系统结构的信息。事实上,大多数浏览器不上传时提交路径信息,只提交文件名。显然,Internet Explorer 选择以不同的方式做事。无论出于何种原因)
For my application I need the full path
说了这么多,为什么您需要来自客户端机器的路径?
关于coldfusion - 查找 cffile 上传的源文件路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38623252/