Каков наилучший способ для загрузки файлов с переменным размером (очень большой или очень маленький в файловую систему ASP.NET MVC 2)?Каков наилучший способ загрузки файлов с помощью ASP.NET MVC 2?
Это то, что я понимаю, до сих пор:
Похоже, есть два способа, которыми люди справиться с этим. (Предположим, что файлы могут быть очень большими или очень маленькими)
(1) Управлять загрузкой в действии контроллера через Request.Files
или HttpPostedFileBase
, что, как представляется, имеет недостаток в длительном времени, поскольку ASP.NET загружает файлы в активную память.
или
(2) перехватывают файл загрузки на ранней стадии с HttpModule, который как-то обходит проблему производительности. (Я немного облачно, как это работает, но я использовал этот пост http://darrenjohnstone.net/2008/07/15/aspnet-file-upload-module-version-2-beta-1/ в качестве справки). Часть, с которой я не понятна, в какой момент ASP.NET загружает представленные файлы в активную память, и как перехват этого в модуле действительно изменяет это поведение.
Поскольку второй вариант работает быстрее, он кажется лучшим вариантом. Но похоже, что приложение, отправляющее форму загрузки, вероятно, будет иметь некоторые данные, связанные с файлом, который должен сохраняться в базе данных. Я не хочу делать вызовы с постоянством в HttpHandler или HttpModule (потому что тогда у меня будут две очень похожие функции, встречающиеся в разных местах: контроллер и обработчик http).
Я думаю, что одна работа вокруг будет хранить местоположение целевого файла в HttpContext.Items, но это лучший способ?
Последнее беспокойство в том, что я хочу отобразить HttpResponse до того, как файл завершит загрузку. Итак, если есть большой файл, я отправлю пользователю представление со значением состояния загрузки и сделаю вызовы AJAX, чтобы сохранить статус обновленным. Как сделать результат, сохраняя процесс загрузки? Мне нужно сделать AsyncHandler или AsyncController? Нужно ли вручную захватывать другой поток?
Большое спасибо, ребята. Я знаю, что это много вопросов и, вероятно, отражает общее отсутствие понимания чего-то. Самое смешное в общем недостатке понимания состоит в том, что у людей, у которых есть их, также не хватает понимания того, что им не хватает ... поэтому, если кто-то может указать мне в правильном направлении и на эту заметку, я был бы признателен ,
Возможный дубликат [Загрузка файла MVC] (http://stackoverflow.com/questions/765211/file-upload-mvc) – jgauffin
Вы шутите? – smartcaveman
@jguaffin - вопрос, на который вы ссылаетесь, вообще не связан с этой проблемой. – Fenton