首页 > 解决方案 > 从浏览器获取文件的绝对路径

问题描述

假设你有一个 NodeJS 服务器和一个 ReactJS 前端,它们都只在你的本地机器上运行。ReactJS 和 NodeJS 通过 socketio 模块进行通信。在 React 方面,您有一个文件选择字段,如下所示。

  <div>
    Select a file: <input id="fileSelector" type="file" name="myFile"><br><br>
    <input type="submit">
  </div>

您想从浏览器中选择一个文件,然后 NodeJS 将处理对该文件的一些操作。但是在给定的代码块中,输入字段只存储文件的名称而不是文件的绝对路径,因为浏览器无权访问文件系统。因此,我无法告诉 NodeJS 文件在哪里,以便它可以对其进行操作。为了解决这个问题,最好的方法是什么。我不想耍花招,但要以最合适的方式去做。谢谢

标签: node.jsreactjs

解决方案


您可以在浏览器中执行此操作的唯一方法是让客户端提交文件。然后,您的节点服务器将执行您计划对上传的文件执行的任何处理,然后您可以为用户提供一个链接以从您的服务器下载新文件。这是大多数网站处理此问题的方式。

在节点中,您可以使用强大的模块来处理上传到服务器的文件。

另一种选择是构建桌面应用程序。您可以使用 electron 在 node 中构建一个可以访问文件系统的客户端应用程序,并且您仍然可以使用 React 使用您的客户端代码。


推荐阅读