[英]Retrieving full local path in file upload control in ASP.NET
是否可以在文件上传控制中访问文件的本地路径?
例如,我有一个文件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?
我可以假设出于安全原因,浏览器无法显示实际路径,因此也显示伪造路径。但是这不能在后面的代码中访问吗?
我可以假设出于安全原因,浏览器无法显示实际路径,因此也显示伪造路径。但是这不能在后面的代码中访问吗?
你是对的。 既不能部分地由于安全原因,也不能用代码访问它,而且更重要的是,为什么需要它? 如果可以在服务器上获取该路径,则将无法执行任何操作。 除了在开发服务器和客户端计算机时,它们是两台不同的计算机。
如上所述,它没有执行此操作,但是您可以尝试使用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;
显然,您想进行验证,但是为了简洁起见,我将其省略。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.