2014-03-04 77 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; 

很明显,你会想做验证,但为简洁起见,我已经将其保留。

相关问题