如何在 Chrome 中获取所选文件的实际文件路径而不是“假路径”?

use*_*903 5 javascript google-chrome filepath

在 Chrome 中选择文件后,我需要获取该文件的完整客户端路径。目前,我得到的唯一路径类似于:

C:\fakepath\some_file
Run Code Online (Sandbox Code Playgroud)

我所有的谷歌搜索都让我得到以下答案:“你不能因为 HTML5 安全规范。此外,你为什么需要?你可以在不知道路径的情况下上传它。”

这是一个完美有效的答案,只是我不需要上传文件。我管理的网站可以有任意数量的管理员用户,他们通过浏览和存储大量文件的路径来配置网站。所有这些文件都存储在 Web 服务器有权访问的共享网络位置上。

这样做的全部目的是消除上传时间,防止在管理员决定更改文件时重新上传文件,并将 Web 服务器存储空间保持在最低限度。显然,Web 服务器也处理和操作这些文件。这些都是客户的要求

Web 服务器和共享位置都位于未连接到 Internet 的内部网络上。此外,只有具有管理员角色的用户才能访问上述位置和允许他们配置这些路径的网页。安全方面,这对客户端来说已经足够了。

我们一直在使用 Internet Explorer 并将该网站添加到受信任的网站列表中,它运行良好,但现在用户正在切换到 Chrome,这是新的官方和批准的公司浏览器。Internet Explorer 将很快被淘汰。

目前,用户正在将路径复制并粘贴到输入字段中,但他们希望能够像以前一样浏览文件。

如何强制 Chrome 向我显示实际文件路径,是否有与 IE 中的受信任网站列表等效的内容,或者您​​将如何调整网站以适应这些条件?

dez*_*man -1

出于安全原因,浏览器不允许这样做,即浏览器中的 JavaScript 无法访问文件系统。

您可以构建一个 chrome 扩展,请参阅https://developer.chrome.com/docs/extensions/reference/fileSystem/

您还可以使用 flag 打开 chrome --allow-file-access-from-file,请参阅https://cmatskas.com/interacting-with-local-data-files-using-chrome/

FileSystem API为您提供专为您的 Web 应用程序创建的沙盒文件系统。