MimeType始终是application / octet-stream

时间:2012-12-04 12:00:59

标签: c# asp.net flash mime-types uploadify

我遇到的问题是,在我的ashx.cs处理程序中,即使上传图像,我也始终会获得application/octet-stream的内容类型。

我使用uploadify进行上传,首先我使用的是uploadify v2.1.0。我已升级到uploadify 3.1。无论如何,我使用任一版本都会收到application/octet-stream作为ContentType。

我读到它可能是一个Flash播放器问题,因此我使用their uninstaller取消安装了Flash,并尝试了Flash Player 10.1.102.6411_1r102_55_64bit并尝试重新安装最新版本。所有三个版本都没有更改内容类型。

我使用的是Internet Explorer 8和9,没有任何更改......以及Windows Server 2008 R2 64位和Windows 7 64位。

我的.ashx处理程序:

namespace HttpHandlers
{
    public class UploadsHandler
        : IHttpHandler
    {
        /// <summary>
        /// Enables processing of HTTP Web requests by a custom HttpHandler that implements the <see cref="T:System.Web.IHttpHandler" /> interface.
        /// </summary>
        public void ProcessRequest(HttpContext context)
        {
            try
            {
                HttpPostedFile file = context.Request.Files["Filedata"];
                string mimeType = file.ContentType; // always application/octet-stream

                context.Response.ContentType = "text/plain";
                context.Response.Write("success");
            }
            catch (Exception ex)
            {
                context.Response.ContentType = "text/plain";
                context.Response.Write(ex.Message);
            }
        }

        /// <summary>
        /// Gets a value indicating whether another request can use the <see cref="T:System.Web.IHttpHandler" /> instance.
        /// </summary>
        /// <returns>true if the <see cref="T:System.Web.IHttpHandler" /> instance is reusable; otherwise, false.</returns>
        public bool IsReusable
        {
            get
            {
                return false;
            }
        }
    }
}

我现在没有想法......这是先前的工作,直到某些事情改变了,现在我想弄清楚是什么......

1 个答案:

答案 0 :(得分:0)

嗯,这根本不是asp.net。

mime类型是浏览器发送的HTTP协议序列的一部分,他有责任确定它。

有些人很糟糕,有些人很好,有时候。

检查

http://blog.futtta.be/2009/08/24/http-upload-mime-type-hell/

用于分析为cs上传传输的mime类型。相当透露。

如果您需要确定文件是什么,则必须执行该服务器端,假设文件扩展名正确和/或解析文件。我记得10年前我们编写CMS的时候,实际上我们已经上传到内存中的所有图像都是为了确保它们有效。你不能依赖mime类型是正确的。但是你得到一个文件名,可以用来找到“正确的”mime类型,除非文件的扩展名错误。