2011-05-03 71 views
3

在我的asp.net頁面中,我製作了一個從本地驅動器到服務器的文件副本。目錄未找到異常...但我可以瀏覽到目錄?

'append the name to the id number and generate the file name 
strFileName = System.Configuration.ConfigurationManager.AppSettings("strAttachmentsPath") & l.ToString & "_" & CType(Session("FileName"), String) 
'upload the file 
'FileUpload1.SaveAs(strFileName) 

System.IO.File.Copy(CType(Session("Attachment"), String), strFileName, True) 

strFileName包含像"\\myServer\images\theNewFileName.jpg" Session("Attachment")服務器路徑包含我的本地路徑'C:\Users\myUser\Desktop\AccountsFrance.txt'

但是當我運行此代碼asp.net拋出一個異常:

但我可以瀏覽到這個文件很容易.... 我不明白爲什麼會發生這種情況:(

enter image description here

+0

這很可能是一個權限問題。或者,您正在使用不同的文件路徑,那麼您的真正意圖。 – 2011-05-03 16:32:29

+0

@ rlb.usa - 不知道如何解決這個問題......因爲我無法設置fileupload控件爲了安全起見而採取字符串編程方式。我需要允許最終用戶將文件從一個路徑複製到服務器。該路徑可能是他們的本地PC C/D/E驅動器等... – oJM86o 2011-05-03 16:34:30

回答

2

假設權限對網絡服務設置寫入目標目錄,做一個

strFileName = Server.MapPath(System.Configuration.ConfigurationManager.AppSettings("strAttachmentsPath") & l.ToString & "_" & CType(Session("FileName"), String))

的目錄,看看您是否仍然得到權限問題。

此外,會話(「附件」)的價值是什麼?這需要是服務器上的文件路徑,而不是用戶端。通常情況下,在上傳方案中,您需要從上傳控件中獲取字節[],並將其寫入服務器上的流中。然後您可以將該文件路徑複製到別的地方。

+0

@Josh - 我在哪裏編輯? – oJM86o 2011-05-03 16:35:16

+0

@Josh我試過沒有錯誤,但當然我評論說複製文件如何幫助我? – oJM86o 2011-05-03 16:37:58

+0

在處理ASP.NET頁面時,您必須讓服務器根據它所知道的來放置文件。這就是Server.MapPath的功能。嘗試複製,看看會發生什麼。 – Josh 2011-05-03 16:39:23