2017-01-11 6 views
0

У меня есть действие в asp.net mvc, которое принимает загруженный файл. HttpPostedFileBase я не пустой и даже ContentLength имеет значение больше 0, но когда я осмотреть "InputSream", он имеет следующие ошибки:asp.net mvc fileupload ReadTimeout в HttpPostedFileBase inputstream

ReadTimeout = «((System.Web.HttpPostedFileWrapper) REFILE) .InputStream .ReadTimeout»бросил исключение типа„System.InvalidOperationException“

так что, когда я хочу, чтобы преобразовать в readitbytes, как следовать, то нет ничего, кроме пустого массива:

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

так„а“получить "{байт [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 
} 

Thanks Надеюсь, что эта помощь!

 Смежные вопросы

  • Нет связанных вопросов^_^