2014-09-03 44 views
-1

我已經找了幾天,沒有運氣。將文件保存到用戶計算機在VB.Net

誰能告訴我如何將文件保存到VB.Net到任何計算機?有文章丟失,但這些只會告訴你保存到自己的計算機通過提供文件夾訪問,而不是隨機用戶的計算機。

你可以看到我的例子在這裏http://hanontest.com/POShellCreator.aspx(你必須輸入文本的任務代碼,項目ID和註釋字段,然後點擊創建。然後單擊導出,你會看到錯誤。)

我可以去一家當地比薩店的網站和一個菜單下載pdf,我知道它是可能的。

在我的例子中,當你點擊按鈕時,它會保存,如果有人知道如何做到這一點,我想保存爲對話框。

這裏是保存字符串:

Dim regDate As Date = Date.Now() 
     Dim strDate As String = regDate.ToString(".yyyy\.MM\.dd") 
     TextBox5.Text = "c:\temp\" & Vendor & "&" & Vendor2 & "&" & Vendor3 & "&" & Vendor4 & TaskEmpty & strDate & ".csv" 

這裏是我現在的儲蓄:

Public Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click 

    'Define Path to save file. 
    Dim path As String = TextBox5.Text 

    ' Create or overwrite the file. 
    Dim fs As FileStream = File.Create(path) 

    ' Add text to the file. 
    Dim info As Byte() = New UTF8Encoding(True).GetBytes(TextBox3.Text) 
    fs.Write(info, 0, info.Length) 
    fs.Close() 
End Sub 
+0

如果這是一個ASP.NET應用程序,那麼您的服務器端代碼無法將文件直接保存到在瀏覽器中查看您網站的人的機器上。他們必須從URL下載文件。該URL可能是您保存的服務器上的實際文件,也可能是按需生成的數據。 – jmcilhinney 2014-09-04 00:03:47

回答

1

你看到的錯誤有,因爲你試圖保存文本文件服務器的 文件系統,您沒有寫訪問權限。

要從服務器返回一個文件給用戶,您需要做更多的工作,並且從按鈕回發時不會很簡單。

您需要發送數據到客戶端在Response.OutputStream,而不是你的頁面,並告訴瀏覽器把它當作一個文件下載:

Response.ContentType = "text/plain"; 
Response.AppendHeader("Content-Disposition", "attachment; filename=textFile.csv"); 
+0

當前頁面保存到我的c:盤符就像我想要的,它不會保存到服務器......錯誤是,當我發佈到服務器時,它會出現該錯誤,當我嘗試保存到c : 駕駛。 – 2014-09-04 00:41:40

+1

嗯,這不是你鏈接到的網站上的錯誤所說的。它試圖寫入服務器**上的'C:\ temp \'**。當您在本地運行它時,它可能會將它保存到您的計算機上,因爲它正在運行,但在服務器上,當我運行它時,嘗試寫入服務器磁盤時出現錯誤。沒有保存對話框,你不能直接寫入用戶的文件系統。當我最初閱讀這個問題時,我認爲您的問題在於瀏覽器顯示內嵌的文本文件... – 2014-09-04 06:30:56

相關問題