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