2010-03-03 62 views
0

我有一個需要複製的文件,針對專門爲其下載它的人員運行一個命令,然後將該副本提供給用戶下載。我使用的是ASP.Net MVC2,我從來沒有做過這樣的事情。我四處搜尋最簡單的方法,但我沒有找到太多,所以我想出了一個計劃。ASP.Net:生成要下載的文件

我想我要做的就是生成一個guid,它將成爲一個文件夾的名稱,我將在源文件的相同級別生成該文件夾的副本。然後,我將該文件複製到該文件夾​​,對它運行我的命令,提供一個指向該文件的鏈接,並且我將有一些不時運行的服務,可以刪除超過一天的目錄。

我在想這個嗎?有沒有更容易,更簡單,或至少更正式的方式來做到這一點?我的方式似乎有點複雜和混亂。

回答

1

你有什麼命令可以對付它?

因爲在控制器的操作中使用MVC的FileResult將它處理到內存中是理想的,因爲它將它發送給客戶端。

查爾斯

+0

嗯,我想在其上運行Windows安裝程序的SQL查詢,但我在努力尋找如何做到這一點的.NET。它看起來像有一個API,但我似乎無法找到下載它的地方。我很想用這樣的代碼來完成這一切。 – 2010-03-03 06:21:04

+1

嗯,好吧,我沒有任何經驗做這種事情。如果在內存中如何做這樣的事情,然後用這些知識返回一個'FileResult',你可能會更好。我爲這個問題添加了一些標籤,可能會有所幫助。 – Charlino 2010-03-03 06:32:59

2

你可以在內存中處理並通過處理程序將其流式傳輸到客戶端嗎?

這就是我如何做這樣的事情。

基本上,您的下載鏈接指向一個HttpHandler,通常是異步,它執行處理,然後通過內容處理「附件」和文件名流式傳輸位。

編輯:我沒有做太多的MVC,但查爾斯描述的聽起來像和我上面描述的MVC版本。

無論哪種方式,處理內存和流出它可能是你最好的選擇。它避免了許多令你頭疼的問題,代碼和工作流程,否則你將不得不維護。