2014-03-04 114 views
0

是否有可能獲得訪問文件的文件上傳控制的本地路徑?檢索文件上傳控件完整本地路徑在ASP.NET

E.g.我有一個文件C:\ DummyData \ Hello.txt

ASP.NET項目存儲在這裏C:\ Project \ FileUploadTest其中有一個default.aspx頁面包含文件上傳控制說fileUpload1。

在後面的代碼,我用

string filename = Path.GetFullPath(fileUpload1.PostedFile.FileName); 

但是這給我的文件名作爲

C:\\Program Files\\Common Files\\Microsoft Shared\\DevServer\\10.0\\Hello.txt 

有沒有一種方法,我可以捕獲C:\ DummyData \ hello.txt的?

我可以假設,由於安全原因,瀏覽器無法顯示實際的路徑,從而顯示fakepath。但不能在此可以在後面的代碼訪問?

回答

0

我可以假設,由於安全原因,瀏覽器不能顯示實際的路徑,因此顯示fakepath ..但不能在代碼後面訪問?

你是正確的。它不能在代碼中訪問,部分原因是由於安全原因,也可能更重要的是,爲什麼你需要它?如果你可以在服務器上獲得它,你無法做任何事情。除了開發服務器時,客戶機是兩臺不同的機器。

+0

戴夫齊赫:我不想把文件到服務器。一旦我掌握了客戶端文件路徑,就會使用File.Move將文件移動到不同的機器(比如機器B),而無需將其帶到服務器。 –

0

如上所述,它不這樣做,但你可以嘗試使用JavaScript和隱藏輸入一個解決方法。我沒有測試的代碼,但這樣的事情會做到這一點:

HTML

<asp:FileUpload ID="fileUpload1" runat="server" /> 
<input type="hidden" id="hidLocalPath" runat="server" /> 

的JavaScript(使用jQuery)

$('#<%=fileUpload1.ClientID %>').change(function() { 
    $('#<%=hidLocalPath.ClientID %>').val($(this).val()); 
}); 

服務器端(C# )

string localFileName = hidLocalPath.Value; 

很明顯,你會想做驗證,但爲簡潔起見,我已經將其保留。

相關問題