2015-06-24 2 views
3

здесь я хочу указать код, который я нашел здесь Using plupload with MVC3. чье намерение заключается в загрузке одного файла, но мое требование немного отличается, так как мне нужно загрузить несколько больших файлов, скажем, 3 файла, и каждый размер файла может составлять 2 ГБ.Как загрузить несколько больших файлов ASP.Net MVC

[HttpPost] 
public ActionResult Upload(int? chunk, string name) 
{ 
    var fileUpload = Request.Files[0]; 
    var uploadPath = Server.MapPath("~/App_Data"); 
    chunk = chunk ?? 0; 
    using (var fs = new FileStream(Path.Combine(uploadPath, name), chunk == 0 ? FileMode.Create : FileMode.Append)) 
    { 
     var buffer = new byte[fileUpload.InputStream.Length]; 
     fileUpload.InputStream.Read(buffer, 0, buffer.Length); 
     fs.Write(buffer, 0, buffer.Length); 
    } 
    return Json(new { message = "chunk uploaded", name = name }); 
} 

$('#uploader').pluploadQueue({ 
    runtimes: 'html5,flash', 
    url: '@Url.Action("Upload")', 
    max_file_size: '5mb', 
    chunk_size: '1mb', 
    unique_names: true, 
    multiple_queues: false, 
    preinit: function (uploader) { 
     uploader.bind('FileUploaded', function (up, file, data) { 
      // here file will contain interesting properties like 
      // id, loaded, name, percent, size, status, target_name, ... 
      // data.response will contain the server response 
     }); 
    } 
}); 

просто интересно, кто-нибудь может сказать мне, что еще мне нужно добавить в выше стороне сервера и клиента на стороне кода, который позволит мне загружать несколько больших файлов. спасибо

+2

Если вы ориентируетесь новые браузеры, я бы серьезно рассмотреть вопрос вы смотрите в HTML5 Flash не хуже мертвых, если вы не работаете со старыми браузерами. Ниже приведена информация об использовании API файлов HTML5: http://www.html5rocks.com/en/tutorials/file/dndfiles/ – mattytommo

+0

http://weblog.west-wind.com/posts/2013/Mar/12/Using -plUpload-to-upload-Files-with-ASPNET – Thomas

+0

Вы понимаете, что ссылка невероятно устарела и предшествует HTML5? – mattytommo

ответ

1

Возможно, вам понадобится добавить запись в ваш файл web.config, чтобы разрешить большой размер файла (2097152KB = 2GB). Тайм-аут в секундах вы можете настроить соответствующим образом:

<system.web> 
    <httpRuntime maxRequestLength="2097152" executionTimeout="3600" /> 
</system.web> 

также вы можете установить предел запроса (который находится в байтах) будет 2GB,

<system.webServer> 
    <security> 
     <requestFiltering> 
      <requestLimits maxAllowedContentLength="2147483648"/> 
     </requestFiltering> 
    </security> 
</system.webServer> 
+0

Что такое maxRequestLength? и что делает maxAllowedContentLength? и разница между двумя? – Thomas