ASP.获取客户端机器上的文件路径(任何可能的解决方案/变通方法?)

本文关键字:解决方案 方法 机器 客户端 获取 文件 ASP 路径 任何可 | 更新日期: 2023-09-27 17:50:34

我在.aspx页面上有一个文件上传控件,我正在提取基本文件信息。需求是,我需要从客户端机器保存所选文件的绝对路径到db.

我已经在这个网站以及其他地方,自然ASP。基于安全原因,NET不允许从客户端机器读取信息。

但是我想知道是否有一种方法可以绕过这个问题使用js或其他东西来获得绝对路径,然后将其传递给asp.net变量?

ASP.获取客户端机器上的文件路径(任何可能的解决方案/变通方法?)

对于这个限制,你真的不能做任何合理的事情。

用户机器上的任何完全受信任的代码都可以这样做。所以你的目标是说服用户安装一些可以为你提供信息的东西。

对于Windows(都需要安装):

  • ActiveX控件
  • 本机EXE
  • 本地安装的托管EXE
  • 本地安装的HTA仅适用于IE

我相信几乎所有的平台都有办法……

无法获取客户端机器路径。出于安全考虑,浏览器永远不会发布完整的文件路径。

无法获得文件的完整路径。出于安全考虑,浏览器永远不会发布完整的文件路径。

尝试在java脚本中使用下面的代码。

lbltext.Text = FileUpload1.PostedFile.FileName 

浏览器发送文件没有完整的文件路径,所以检索文件路径你做它在客户端通过javascript函数:

<script type="text/javascript">
function OnSubmitHandler(myForm)
{
   var fileUpload = document.getElementById('<% = FileUpload1.ClientID %>');

   myForm.action =  myForm.action + "?FilePath=" + fileUpload.value;

   return true;

}
</script>

<form id="Form1" method="post" runat="server" onsubmit="return OnSubmitHandler(this);">
...
<asp:FileUpload id="FileUpload1" ....  />

...
</form>

如果你不想通过查询字符串发送文件路径,你可以创建一个隐藏的表单字段,这样文件路径将通过post发送。