2017-01-11 9 views
0

アップロードされたファイルを受け入れるアクションがasp.net mvcにあります。 HttpPostedFileBase私が手がnullではないとさえん。ContentLengthは0より大きい値を持っていますが、私は "InputSream" を点検するとき、それはエラーは次の通りです:asp.net mvc fileupload HttpPostedFileBaseの入力ストリームReadTimeout

ReadTimeout =「((System.Web.HttpPostedFileWrapper)リファイル).InputStreamを

using (var reader = new System.IO.BinaryReader(refile.InputStream)) 
        { 
         var a = reader.ReadBytes(model.File.ContentLength); 
        } 

だから、 『』を取得:.ReadTimeoutは、私は従うようreaditbytesに変換したいときに、空の配列を除いては何もないと、System.InvalidOperationException 『

」のタイプの例外を投げました』 "{バイト[0]}"。

何が問題ですか?

答えて

0

AbpがMVCアクションパラメータを検証しようとしていて、ファイルパラメータの値を読み取って検証しようとすると、この例外が発生します。

あなたが検証し、すべてのための

HttpPostedFileWrapper

種類の完全

を仕事とそれ(で詳細:Convert HttpPostedFileBase to byte[])からバイト配列を取得するためにこれを使用する必要があります無視することができ

using (var ms = new MemoryStream()) 
    { 
    refile.InputStream.CopyTo(ms); 
    byte[] a = ms.ToArray(); 

    } 
2

あなたのフォームにenctypeが不足している可能性があります。この種の問題がある場合は、フォームを修正してください。ファイルを含むMVCフォームはこのようになります

@using (Html.BeginForm("Add", "Advertisement", FormMethod.Post, new { @class = "form-horizontal", enctype = "multipart/form-data" })) 
{ 
    //Content 
} 

ありがとうございました!

関連する問題