2010-04-05 189 views
1

我正在使用office interop在vb.net中創建excel報告。報告完成後,我將C文件保存在C盤上。用戶要求將文件保存在任何他們想要的地方,而不僅僅是C盤。有人可以給我一些代碼在asp.net中彈出一個opend文件對話框嗎?打開文件對話框Asp.Net

我想讓對話框在ASP.NET中的saveAs中彈出。我知道如何在win窗體中做到這一點,但我在asp.net中創建了一個excel報告,並調用除了fileName之外的工作表對象SaveAs屬性。所以現在我只是在那裏硬編碼一個文件名。用戶想要選擇文件位置

+1

只是要清楚...這是通過ASP.NET,而不是WinForms?你將它保存到他們的C:驅動器? – David 2010-04-05 14:46:00

+1

我認爲你指的是.NET,而不是ASP.NET。 ASP.NET僅用於Web上下文中。 – 2010-04-05 14:50:28

+0

你目前如何將它保存到C驅動器? – mxmissile 2010-04-05 15:26:46

回答

1

我想你想要的東西實際上是相當簡單的。

您不能將文件複製到用戶的計算機上保存由於安全限制(你會希望有一個網站保存文件到您的計算機?)

你需要做的是:

  1. 完整的報告
  2. 保存報告文件的位置服務器上,IE(.../myWebsite /文件/ GUID/myReport.rpt)報告文件的下一個屏幕指向
  3. 顯示鏈接

這樣做,用戶可以右鍵單擊並將文件保存到計算機上的任何位置。

你可以按照你想要的時間表清理這些文件。

+0

是的,我想將它保存在客戶端,但也許這只是一個糟糕的設計。它是一個內聯網網站應用程序,所以我明白下載到客戶端是沒有意義的,但在我的情況下,它會這樣做,因爲並非所有的用戶都可以看到報告和管理員不希望重新存檔在服務器上。 – 2010-04-05 17:42:37

+0

我以爲你可能有某種隱私的東西,這就是爲什麼我使用GUID作爲文件夾,這樣你就無法猜測路徑。您還可以安排一個過程,每天晚上刪除「文件」文件夾中的所有文件夾,這樣報告就不會被存檔。 – 2010-04-05 17:52:14

+0

他們想要另一個在客戶端上創建該文件並將其保存在他們的機器上。有沒有辦法? – 2010-04-05 18:38:23

0

假設您實際上正在討論桌面,winforms應用程序,那麼您可以使用內置的FileSaveDialog。

正式文件是在這裏:

但也有解釋它在那裏噸教程:

+0

不,我希望對話框在asp.net中的saveAs中彈出。我知道如何在win窗體中做到這一點,但我在asp.net中創建了一個excel報告,並調用除了fileName之外的工作表對象SaveAs屬性。所以現在我只是在那裏硬編碼一個文件名。用戶想要選擇文件位置。 – 2010-04-05 15:19:32

0

您可以服務器文件與打開/保存對話框使用Response.TransmitFile()

然後向用戶呈現另存爲對話框,他們可以在其中選擇文件名和他們計算機上的位置。

您通常在HttpHandler內部執行此操作。下一個簡單的描述如下:

+0

因此,沒有簡單的方法讓用戶在asp.net中選擇文件位置? – 2010-04-05 16:13:39