ASP.Net: создание файла для загрузки - PullRequest
0 голосов
/ 03 марта 2010

У меня есть файл, который мне нужно скопировать, выполнить команду для копии, которая специализируется на том, кто его загружает, и затем предоставить эту копию пользователю для загрузки. Я использую ASP.Net MVC2, и я никогда не делал ничего подобного. Я искал самый простой способ сделать это, но я не нашел много, поэтому я придумал план.

Я думаю, что я сделаю генерацию guid, которая станет именем папки, которую я буду генерировать на том же уровне исходного файла, из которого сделана копия. Затем я скопирую файл в эту папку, выполню для него команду, предоставлю ссылку на файл, и у меня будет время от времени запускаться какая-то служба, которая удаляет каталоги старше одного дня.

Я слишком обдумываю это? Есть ли более простой, простой или хотя бы более формальный способ сделать это? Мой путь кажется немного запутанным и грязным.

Ответы [ 2 ]

2 голосов
/ 03 марта 2010

Можете ли вы обработать в памяти и передать его клиенту с помощью обработчика?

Вот как я делаю такие вещи.

По сути, ваша ссылка для загрузки указывает на HttpHandler, обычно асинхронный, который выполняет обработку, а затем выполняет потоковую передачу битов с расположением содержимого «attachment» и именем файла.

РЕДАКТИРОВАТЬ: Я не делаю много MVC, но то, что Чарльз описывает звуки и версию MVC, что я описываю выше.

В любом случае, обработка в памяти и ее потоковая передача, вероятно, является лучшим выбором. Это избавляет от множества головных болей, кода и рабочих процессов, которые вы должны были бы поддерживать в противном случае.

1 голос
/ 03 марта 2010

Какую команду вы должны выполнить против нее?

Поскольку было бы идеально обрабатывать его в памяти в действии контроллера, используя MVC FileResult для отправки его клиенту.

Чарльз

...