我可以通过uploadify + .ashx
上传我的文件,但问题是我总是得到ContentType = application/octet-stream
让我说我上传了一张图片,我希望该回复给我"image/pjpeg"
,但无论我上传什么文件,它都会返回"application/octet-stream"
。
请告知如何在.ashx中获取正确的contentType
答案 0 :(得分:0)
我相信很可能内容类型是由浏览器设置的。无论如何,不同的浏览器可以为不同的文件设置不同的内容类型 - 并且它们可以回退到通用内容类型,例如任何二进制文件(pdf,zip,doc,xls)的“application / octet-stream”。一个浏览器可能会将docx报告为“application / vnd.openxmlformats”,而另一个浏览器可能会报告为“”application / x-zip-compressed“而另一个浏览器报告为”application / octet-stream“。但是它们都是正确的,因为它们都是正确的,因为docx是二进制文件,是压缩(zip)文件。
简而言之,我的建议是你不应该依赖客户端发送的内容类型(在某种程度上决定其文本,html或二进制等),而是使用服务器端嗅探逻辑来确定文件内容的类型。简单的嗅探可以基于文件扩展,而更强大的实现将在实际文件内容中掠夺,通常文件的前几个字节指示文件类型。