2014-12-22 69 views
0

我正在使用文件,但我並不真正瞭解如何使其工作。來自遠程服務器的文件的完整路徑

我有一個Web應用程序(C#)位於服務器上和用戶使用該應用程序上傳文件的一些信息。我讓用戶從本地機器上傳文件(使用HttpPostedFileBase類)的問題,但代碼嘗試匹配服務器上的相同路徑,當然文件在服務器上不存在,這就是爲什麼它會拋出一個錯誤說

找不到路徑的一部分...

如果用戶試圖從C:\Users\User1\Documents\File.txt將文件從本地機器上載我怎麼可以編寫代碼,包括整個文件路徑包括計算機名稱和本地驅動器,如\\ComputerName\c$\Users\User1\Documnets\File.txt

+1

也許我失去了一些東西,但...爲什麼你需要用戶的本地路徑的文件呢?您已經聲明文件正在上傳,因此文件的原始路徑現在存儲在服務器上是什麼? – Kritner

+0

如果您在客戶機上使用網頁,則應參考FTP或HTTP文件上載協議。最好的問候, –

+0

對不起,我的錯,我沒有上傳文件。我試圖將文件保存到服務器。如果我的驅動器映射正確,我沒有任何問題,但爲了保存文件,我需要知道我從中複製的位置以及我正在複製到的位置。在這種情況下,因爲它是客戶機,所以我沒有看到文件的完整路徑以成功上傳它。 – MarinaS

回答

7

你不行。客戶端和服務器彼此斷開連接。這就是網絡的工作原理。您無法獲取完整的客戶端路徑,並以任何方式訪問服務器。

有很好的理由,最重要的是安全/信任。

+0

如何將文件從客戶端的機器保存到服務器比不知道完整路徑? – MarinaS

+0

您必須將其保存在服務器上的某個位置,具體取決於您的需要。最簡單的方法是自己創建文件路徑,然後使用['HttpPostedFileBase.SaveAs'](http://msdn.microsoft.com/zh-cn/library/system.web.httppostedfilebase.saveas(v = vs.110)的.aspx)。 –

+1

我想確切的同樣的事情: VAR fileLocation = Path.Combine(Path.GetTempPath()的string.join(Guid.NewGuid()的ToString(),files.FileName)); files.SaveAs(fileLocation); 但它未能保存它說路徑的一部分沒有找到 – MarinaS