【发布时间】:2020-12-14 09:09:28
【问题描述】:
我们的 Intranet 上有一个问题跟踪系统,我们需要将受影响的文件添加到问题中,包括文件的路径。
我们一直在使用 asp.net FileUpload 控件并使用 FileUpload1.PostedFile.FileName 来获取用户选择和上传的文件的路径。这些文件通常不在用户本地计算机上,而是在与问题跟踪系统不同的服务器上的网络驱动器上。我们使用上传作为将文件添加到问题跟踪器的简单方法。
出于安全原因,这不适用于任何最新的浏览器,仅适用于即将淘汰的 Internet Explorer。
有没有办法让它工作?至少对于 Intranet 站点?还是有更好的方法来解决这个问题?我们确实需要文件路径,如果我们必须复制和粘贴,这会使这个过程花费更长的时间,因为它会使其成为一个两步过程,并且经常需要添加许多文件。
这是asp.net页面的sn-p:
<asp:FileUpload ID="FileUpload1" runat="server" />
这是我获取文件路径的方式:
Dim sFileLocation As String = ""
Dim sFileName As String = ""
Dim sExtension As String = ""
sFileName = GetFileName(Me.FileUpload1.FileName)
sExtension = GetExtension(Me.FileUpload1.FileName)
sFileLocation = Me.FileUpload1.PostedFile.FileName
sFileLocation = sFileLocation.Replace(sFileName, "")
【问题讨论】:
-
你想做什么?您无法捕获上传文件的用户的文件路径?请澄清并可能添加您的代码的 sn-p,以便我们获得更好的图片。
-
@JobesK 我正在尝试在用户机器上获取上传文件的完整目录。然后将其存储在数据库中并在我们的问题跟踪系统中引用。
-
这是不可能的,因为从服务器机器获取客户端机器的这些信息是一个安全问题。
-
@UweKeim 这是来自 Intranet 站点,因此在这种情况下它不应该是安全问题,这就是我正在寻找解决方法的原因。是否涉及浏览器插件或其他方法。
-
不可能的 IMO。即使client-side JS File API 也没有提供获取本地文件夹的方法。可能与this 重复。您是否正在尝试解决XY problem?也许存在特定于浏览器的黑客攻击。
标签: javascript asp.net vb.net google-chrome microsoft-edge