从uploadify获取.ashx中的内容类型

时间:2010-11-12 04:41:47

标签: asp.net uploadify ashx

我可以通过uploadify + .ashx上传我的文件,但问题是我总是得到ContentType = application/octet-stream

让我说我上传了一张图片,我希望该回复给我"image/pjpeg",但无论我上传什么文件,它都会返回"application/octet-stream"

请告知如何在.ashx中获取正确的contentType

1 个答案:

答案 0 :(得分:0)

我相信很可能内容类型是由浏览器设置的。无论如何,不​​同的浏览器可以为不同的文件设置不同的内容类型 - 并且它们可以回退到通用内容类型,例如任何二进制文件(pdf,zip,doc,xls)的“application / octet-stream”。一个浏览器可能会将docx报告为“application / vnd.openxmlformats”,而另一个浏览器可能会报告为“”application / x-zip-compressed“而另一个浏览器报告为”application / octet-stream“。但是它们都是正确的,因为它们都是正确的,因为docx是二进制文件,是压缩(zip)文件。

简而言之,我的建议是你不应该依赖客户端发送的内容类型(在某种程度上决定其文本,html或二进制等),而是使用服务器端嗅探逻辑来确定文件内容的类型。简单的嗅探可以基于文件扩展,而更强大的实现将在实际文件内容中掠夺,通常文件的前几个字节指示文件类型。