代码之家  ›  专栏  ›  技术社区  ›  kst

从uploadify获取内容类型in.ashx

  •  1
  • kst  · 技术社区  · 14 年前

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

    假设我上传了一张图片,我希望能返回 "image/pjpeg" ,但它总是返回 "application/octet-stream" 不管我上传了什么文件。

    请建议如何获取正确的contentType in.ashx

    1 回复  |  直到 14 年前
        1
  •  0
  •   VinayC    14 年前

    我相信很可能内容类型是由浏览器设置的。不管怎样,不同的浏览器可能为不同的文件设置不同的内容类型,并且对于任何二进制文件(pdf、zip、doc、xls),它们可能会回到通用的内容类型,例如“应用程序/八位字节流”。一个浏览器可能会将docx报告为“application/vnd.openxmlformats”,另一个报告为“application/x-zip-compressed”,另一个报告为“application/octet stream”。但所有这些都是正确的,因为docx是二进制文件,是压缩(zip)文件。

    简而言之,我的建议是,您不应该依赖客户端发送的内容类型(在一定程度上,例如决定其文本、html或二进制文件等),而应该使用服务器端的嗅探逻辑来确定文件内容的类型。简单的嗅探可以基于文件扩展名,而更健壮的实现将从实际的文件内容中提取,通常文件的前几个字节表示文件类型。