TRo*_*ose 5 coldfusion metadata file-type amazon-s3 amazon-web-services
例如,我目前正在使用表单将项目直接上传到 S3 存储桶。在测试时,我没有指定任何预期的文件名或扩展名。
我上传了一个 .png 文件,它产生了这个直接链接:
https://s3-us-west-2.amazonaws.com/easyhighlighting2/2015-07-271438019663927upload94788
当我将其放入标签内时img
,它会正确显示在网页上。
我的问题是,如果没有扩展名,我的浏览器如何知道它正在加载什么类型的文件?在存储桶内,文件的元数据甚至没有填写。
有什么方法可以以编程方式获取该文件扩展名吗?
我准备尝试任何可用的客户端方法;我的服务器端语言是 ColdFusion,它有一定的限制,但我也愿意接受建议。
好吧,经过更广泛的挖掘,我找到了一种检索文件类型的方法,该方法是自 CF10 发布以来才添加的;这可以解释缺乏文件的原因。
答案就在FileGetMimeType
功能中。
<cfset someVar = "https://s3-us-west-2.amazonaws.com/easyhighlighting2/2015-07-271438019663927upload94788">
<cfset FileType = FileGetMimeType(someVar)>
<cfoutput>#FileType#</cfoutput>
Run Code Online (Sandbox Code Playgroud)
这段代码将输出image/png
- 这是正确的,并且适用于我迄今为止测试过的每种文件类型。
我很惊讶这种问题以前没有出现过,但这似乎是最好的答案,至少对于 CFML 的用户来说是这样。
ColdFusion 通过读取文件内容或信任其扩展名来实现此目的。'strict'
此函数中使用了隐式属性。如果为 true,它将读取文件的内容。如果为 false,则使用提供的扩展名。
True 是默认值。
关联:
https://wikidocs.adobe.com/wiki/display/coldfusionen/FileGetMimeType
归档时间: |
|
查看次数: |
10411 次 |
最近记录: |