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

2019-07-17 19:49发布

我有我在哪里提取基本文件信息的.aspx页面上的文件上传控制。 该要求是,我需要从客户机选择的文件绝对路径保存到数据库。

我已阅读本网站以及其他地方通过自然ASP.NET不允许读取来自客户端的机器安全原因的信息。

但我想知道是否有利用周围的js或东西得到的绝对路径,然后将它传递给asp.net变量这个问题的方法吗?

Answer 1:

你真的不能做任何合理有关此限制。

用户的计算机上的任何完全受信任的代码可以做到这一点。 所以,你的目标是说服用户安装的东西,会为你提供的信息。

对于Windows(都需要某种形式的安装目录):

  • ActiveX控件
  • 本地EXE
  • 本地安装的管理EXE
  • 本地安装HTA的IE只

几乎所有我相信平台也有办法来使...有同样痛苦的安装要求。



Answer 2:

你不能得到客户机路径。 为了安全起见,浏览器将不会发布完整的文件的路径。



Answer 3:

你不能获取文件的完整路径。 为了安全起见,浏览器将不会发布完整的文件的路径。

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

lbltext.Text = FileUpload1.PostedFile.FileName 


Answer 4:

浏览器发送文件,而不完整的文件路径,这样检索文件的路径,你通过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>

如果你不想通过查询字符串发送文件的路径,你可以创建隐藏的表单字段,那么文件的路径将通过邮局寄送。



文章来源: ASP.NET: Get file path on client's machine (Any possible solutions/work arounds?)