Подтвердить что ты не робот

Загрузка большого файла в asp.net MVC

Мне нужен способ загрузки больших файлов (от 600 мб до 4 гб) на веб-сайт asp.net mvc. В настоящее время я использую swfupload; он работает достаточно хорошо, но это огромный успех на веб-сервере, потому что он отправляет его в одну большую загрузку, плюс я должен установить его в файле web.config, чтобы этот огромный файл стал огромным угрозой безопасности. В прошлом, когда я занимался разработкой веб-форм, я использовал Neatupload, который разбивает файл на куски и загружает их отдельно. Я ищу способ загрузки больших файлов в mvc, который загружает их через chunking. Любые идеи о том, как я могу это сделать?

4b9b3361

Ответ 2

Я закончил использование Darren Johnstone ASP.NET File Upload Module для обработки загрузки на серверной стороне. Хотя я немного изменил его, чтобы он мог взять указатель на запрос, чтобы он сохранил файл temp для этого имени guid.

Было приятно, потому что он сохранил файл по мере его поступления на сервер и удалил файл из опубликованных данных, который затем отправил в действие на указанном контроллере.

Ответ 3

Пример на мой взгляд:

<input id="FileGUID" name="FileGUID" type="hidden" value="f632c00b-9b66-4716-8075-79df63b780fb" />
    <input type="file" id="FileUpload1" name="fileUpload1" />

    <script type="text/javascript">
        var UploadUrl = '/Video/AsyncUpload?FileGUID=f632c00b-9b66-4716-8075-79df63b780fb';
        $(function() {
            $("#FileUpload1").makeAsyncUploader({
                upload_url: UploadUrl,
                flash_url: '/Content/Flash/swfupload.swf',
                button_image_url: '/Content/Images/blank-button.png',
                button_text: '<font face="Helvetica, Arial" size="13pt" color="#ffffff">Upload File</font>',
                disableDuringUpload: 'input[type="submit"]',
                file_size_limit: '8024 MB',
                button_text_top_padding: 2
            });
        });
    </script>

Затем в действительном действии сохранения для этой страницы я ищу файл, в котором действие asyncupload сохранит файл на основе FileGUID

Ответ 4

Можете ли вы сделать что-то похожее на то, что описано в эта ссылка? Я не понимаю, почему это не работает в ASP.NET MVC.

Ответ 6

Пример реализации SignalR можно найти здесь.

Это также включает в себя функциональность для работы с HttpContext.Request.GetBufferlessInputStream(), которая позволяет вам начать работу с данными после того, как они будут полностью загружены.