2014-09-12 41 views
1

我的問題不一定是如何寫入文本文件,但是,一旦我的網站位於Web主機服務器上,數據仍然會寫入到我的計算機上的文本文件。我目前在Visual Web Developer中工作,並且正在我的機器localhost服務器中進行調試。所以現在毫無疑問,它會被寫入到我的電腦上的文件中,但是,一旦該網站在另一臺服務器上運行並且另一臺計算機進入該網站,它是否會嘗試寫入他們的計算機?將數據寫入到活動網站的本地文本文件

這是我的代碼,我只是尋找一些信息,以及當我上傳到不同的服務器時是否需要更改我的代碼。我正在嘗試將貝寶交易詳細信息寫入我的計算機上的文本文件。每當有人從我的網站購買東西,我需要獲取數據。它需要寫在我的電腦和我的電腦上的文本文件中,而不是購買東西的實際用戶。

這是可能的,還是我正在做這個錯誤的方式,需要做一些不同的事情?

Dim objfirst As New StreamWriter("C:\Users\User\Desktop\Sales Orders.txt", True) 
For i As Integer = 1 To results("num_cart_items") 
    objfirst.Write(results("first_name") + " " + results("last_name") + ", ") 
    objfirst.Write(results("business").Replace("+", " ") & ", " 
    objfirst.Write(results("address_street").Replace("+", " ") & ", " & results("address_city").Replace("+", " ") & ", " & results("address_state").Replace("+", " ") & ", " & results("address_zip") + ", ") 

    objfirst.Write(results("payer_email").Replace("%40", "@") & ", ") 
    objfirst.Write(results("item_name" & i).Replace("+", " ") + ", ") 
    objfirst.Write(results("item_number" & i).Replace("+", "") + ", ") 
    objfirst.Write(results("quantity" & i) + ", ") 
    objfirst.Write(results("mc_gross_" & i)) 
    objfirst.WriteLine() 
+0

我編輯了你的標題。請參閱:「[應該在其標題中包含」標籤「](http://meta.stackexchange.com/questions/19190/)」,其中的共識是「不,他們不應該」。 – 2014-09-12 20:05:28

+0

如果他們/你的服務器(不是很確定我明白)沒有目錄「C:\ Users \ User \ Desktop \」會怎麼樣?使用環境變量。 – Shahar 2014-09-12 20:05:51

+0

好的,關於這個經驗教訓對不起,謝謝。任何有關實際問題的意見? – user3841709 2014-09-12 20:06:53

回答

1

有問題的代碼將文件保存到運行的Web服務器上。它現在保存在您的計算機上,因爲您的計算機是網絡服務器

當您將代碼移動到「真實」網絡服務器時,這就是保存文件的位置,而是使用該代碼。他們將而不是保存到您的個人計算機或任何用戶的計算機。只在服務器本身。


如果您需要將文件「發送」給您,您需要研究一種方法來實現這一點。電子郵件,數據庫或網站的私人區域,您可以瀏覽和查看這些文件。 (關於這些的更多信息超出了這裏的範圍)

我不得不提的一個額外的細節:您需要非常確定公衆用戶將無法訪問上傳的文件。如果您正在使用ASP.NET(包括MVC)的服務器上運行,則App_Data文件夾是個不錯的選擇,因爲默認情況下,無法爲其中的文件創建Web請求。然後,您會創建代碼來分別查看它們。 (再次;關於這方面的細節超出了這個範圍)