2010-06-28 160 views
0

我的代碼有問題。我的代碼是使用fileupload控件瀏覽文件名,當你添加一個處理它的文件名時,代碼在本地主機上運行時運行正常,但是當我把代碼放到我們的prodution服務器上時,它找不到文件名用戶。將文件名映射到服務器上的路徑Asp.net

例如,如果我使用上傳控件瀏覽到 B:\ MIS \ CH Intive \ RPTTOFL_3.csv並且代碼位於我的本地主機上,它知道文件路徑是什麼意思,但如果代碼被移動到生產服務器它可能或可能不知道什麼B:/是或B:/可能映射到其他東西。 即使我正在瀏覽我的C驅動器上的文件,它也會工作,如果代碼位於C驅動器所在的計算機上,但是如果代碼位於另一臺計算機上,則該代碼無效,因爲顯然該文件不會那C盤。

Private Function CSV2DataTable(ByVal filename As String) As DataTable 

Using MyReader As New _ 
Microsoft.VisualBasic.FileIO.TextFieldParser(filename) 
      MyReader.TextFieldType = FileIO.FieldType.Delimited 

. 
. 
. 

我可以在asp.net中做些什麼來使文件名正常工作?

確定可以說我得到的文件名和保存爲這樣

FileUploadControl.SaveAs(使用Server.Mappath( 「〜/」)+文件名);

現在我想通過文件名到上面的函數進行處理。我是否將Server.MapPath(「〜/」)+ filename作爲文件名?另外,當我完成後,我該怎麼做才能從服務器上刪除文件?

回答

1

看來你在混合文件的客戶端和服務器位置。在讀取上傳的文件之前,服務器端代碼必須將其保存在服務器上(此時客戶端文件位置通常不相關)。來自FileUpload類的VS幫助:「您爲保存指定文件而編寫的代碼應該調用SaveAs方法,該方法將文件的內容保存到服務器上的指定路徑。」 FileUpload控件的在線幫助主題具有足夠的信息(包含示例)來實現您所需的內容。

+0

你能用我想找的代碼指出一個好的嗎? – 2010-06-28 14:53:31

+0

我需要能夠將文件名傳遞給一個函數。我會怎麼做? – 2010-06-28 14:56:05

+0

http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.fileupload.aspx - 您將從那裏的示例中看到,您完全控制了保存該服務器的位置上傳的文件,因此在將文件保存在服務器上之後,您知道它將傳遞給函數的完整路徑。 – Igor 2010-06-28 15:17:59

相關問題