繁体   English   中英

在ASP.NET中的文件上载控件中检索完整的本地路径

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM