繁体   English   中英

确定MAC上传流文件的MIME类型

[英]Determining MIME Type of MAC upload stream file

我有一个简单的Web表单,它通过.NET C#发送和发送电子邮件。 另外,还有一个ASP UPLOAD ctrl,我可以从中创建一个内存流并将该流附加到邮件消息中...即无需将文件保存到文件系统。

问题:当MAC用户不对已上传文件进行扩展名(我正在测试PostFile.ContentType以确定文件和/或适当的扩展名,允许的文件RTF,TXT,PDF,DOC,DOCX)时,ContentType似乎返回为“应用程序/八位位组” ...对于我来说,没有PC要求的扩展是有意义的,但是; 仍然不清楚天气,阅读ContentType或扩展名是确定我附加文件类型之前的更好方法。 [无扩展名的MAC文件显然将无法通过任何扩展名测试]

基本上,我从上载ctrl中读取文件,确定其ContentType是什么,仅剥离PostFile.Filename,然后在我使用switch语句中的ContentType字符串创建附件时重新组装,以确定并向附件添加正确的扩展名(文件名+扩展名)。 我这样做是为了确保不使用扩展名的MAC用户仍然可以上传而无需创建.ZIP或其他程序包。

问题1:关于解决此问题和最佳做法,我的逻辑是否合理? 问题2:在不使用MAC扩展名的情况下,所有MAC文件都将返回“应用程序/八位字节”吗?如果是这样,有人如何确定文件的真正类型? (注意:在MAC平台上不使用扩展名时,PDF可以正常工作)。

提前致谢。 如果需要代码示例,请告知。

不使用文件扩展名摸出MIME类型,而是使用“Winista”二元分析,看到这里我的方法,它诉诸回URLMON如果winista不能工作了最后的答案http://social.msdn.microsoft.com/Forums/ zh-CN / Vsexpressvcs / thread / d79e76e3-b8c9-4fce-a97d-94ded18ea4dd

假设某人使用jpg扩展名重命名了一个exe ...您仍然可以确定“真实”文件格式。 它不会检测swf或flv,但是几乎会执行其他所有众所周知的格式+您可以获取一个十六进制编辑器并添加更多可以检测到的文件。

编辑:下载Winista: http : //www.netomatix.com/Products/DocumentManagement/MimeDetector.aspx

这个问题给了我一个好主意,因为您希望添加一个可以在MAC和PC上安全运行的文件扩展名,所以我/您可以编辑mime-types.xml文件以包括可以打开特定文件类型的安全文件扩展名在MAC和PC上都可以。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM