我在.aspx页面上有一个文件上传控件,我在那里提取基本文件信息。要求是我需要将所选文件的绝对路径从客户机的机器保存到数据库。
我已经阅读过这个网站以及其他地方,因为出于安全原因,ASP.NET不允许从客户机上读取信息。
但我想知道是否有办法解决这个问题,使用js或其他东西来获取绝对路径,然后将其传递给asp.net变量?
答案 0 :(得分:3)
你无法对这种限制做任何合理的事情。
用户机器上的任何完全受信任的代码都可以做到这一点。因此,您的目标是说服用户安装能够为您提供信息的内容。
对于Windows(所有都需要某种安装):
我相信几乎所有平台都有办法实现......同样痛苦的安装要求。
答案 1 :(得分:2)
您无法获取客户端计算机路径。出于安全考虑,浏览器永远不会发布完整文件的路径。
答案 2 :(得分:1)
您无法获得该文件的完整路径。 出于安全考虑,浏览器永远不会发布完整文件的路径。
尝试在java脚本中使用以下代码。
lbltext.Text = FileUpload1.PostedFile.FileName
答案 3 :(得分:0)
浏览器发送没有完整文件路径的文件,因此要检索文件路径,请通过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发送。