0

ashx.csハンドラーで、application/octet-stream画像をアップロードしても常にのコンテンツタイプを取得するという問題があります。

私はuploadifyを使用してアップロードを行い、最初はuploadifyを使用していましたv2.1.0。その後、uploadifyにアップグレードしまし3.1た。とにかく、私はapplication/octet-streamどちらかのバージョンを使用してContentTypeとして受け取ります。

Flash Playerの問題である可能性があることを確認したので、アンインストーラーを使用してFlashをアンインストールし、Flash Player10.1.102.64の両方11_1r102_55_64bitを試し、最新バージョンを再インストールしてみました。3つのバージョンすべてで、コンテンツタイプは変更されませんでした。

Internet Explorer 8および9を変更せずに使用しました。また、Windows Server 2008R264ビットおよびWindows764ビットを使用しました。

私の.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;
            }
        }
    }
}

私はこの時点でアイデアがありません...これは何かが変わるまで以前は機能していましたが、現在は何を理解しようとしています...

4

1 に答える 1

0

まあ、これはasp.netの問題ではありません。

MIME タイプは、ブラウザによって送信される HTTP プロトコル シーケンスの一部であり、それを判断するのはブラウザの責任です。

ひどいものもあれば、大丈夫なものもあります。

小切手

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

cs アップロードで転送される MIME タイプを分析します。かなり明らかに。

ファイルが何であるかを特定する必要がある場合は、ファイル拡張子が正しいと仮定して、および/またはファイルを解析して、サーバー側で行う必要があります。10 年前に CMS を作成したとき、実際にアップロードされたすべての画像をメモリにロードして、それらが有効であることを確認したことを覚えています。MIME タイプが適切であることに依存することはできません。ただし、ファイルの拡張子が間違っていない限り、「正しい」MIME タイプを見つけるために使用できるファイル名が得られます。

于 2013-01-03T05:53:34.743 に答える