ASP.获取客户端机器上的文件路径(任何可能的解决方案/变通方法?)
本文关键字:解决方案 方法 机器 客户端 获取 文件 ASP 路径 任何可 | 更新日期: 2023-09-27 17:50:34
我在.aspx页面上有一个文件上传控件,我正在提取基本文件信息。需求是,我需要从客户端机器保存所选文件的绝对路径到db.
我已经在这个网站以及其他地方,自然ASP。基于安全原因,NET不允许从客户端机器读取信息。
但是我想知道是否有一种方法可以绕过这个问题使用js或其他东西来获得绝对路径,然后将其传递给asp.net变量?
对于这个限制,你真的不能做任何合理的事情。
用户机器上的任何完全受信任的代码都可以这样做。所以你的目标是说服用户安装一些可以为你提供信息的东西。
对于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发送。