是否可以在文件上传控件中访问文件的本地路径?
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?
我可以假设,由于安全原因,浏览器无法显示实际路径,因此显示伪路径..但是这不能在代码后面访问吗?
答案 0 :(得分:0)
我可以假设,由于安全原因,浏览器无法显示实际路径,因此显示伪路径..但是这不能在代码后面访问吗?
你是对的。它也无法在代码中访问,部分原因是出于安全原因,而且可能更重要的是,为什么需要它呢?如果您可以在服务器上获取它,则无法对该路径执行任何操作。除了在开发服务器和客户端机器是两台不同的机器时。
答案 1 :(得分: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;
显然你想做验证,但为了简洁,我把它留了下来。