node.js - 从浏览器获取文件的绝对路径
问题描述
假设你有一个 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 文件在哪里,以便它可以对其进行操作。为了解决这个问题,最好的方法是什么。我不想耍花招,但要以最合适的方式去做。谢谢
解决方案
您可以在浏览器中执行此操作的唯一方法是让客户端提交文件。然后,您的节点服务器将执行您计划对上传的文件执行的任何处理,然后您可以为用户提供一个链接以从您的服务器下载新文件。这是大多数网站处理此问题的方式。
在节点中,您可以使用强大的模块来处理上传到服务器的文件。
另一种选择是构建桌面应用程序。您可以使用 electron 在 node 中构建一个可以访问文件系统的客户端应用程序,并且您仍然可以使用 React 使用您的客户端代码。
推荐阅读
- ios - 在 iOS 设备上尝试时 Flutter 签名无效
- javascript - 有没有办法让一个代码适用于具有相同功能的多个按钮?
- android - 如何在同一个活动中注入两个组件?
- c# - 我们的集成测试中的多个数据库上下文似乎间歇性失败,添加 ToList() 并不能解决它
- python - 每小时将数据从 AWS S3 加载到 Google Big Query
- python - 如何有效地在根目录中检索曲目?
- android - 我想收到一个 Android 自定义 recyclerview 点击事件
- entity-framework-6 - 使用实体框架 edmx 文件将 C# GIS 类型(使用 NetTopologySuite 或 System.Data.Entity.Spatial.DbGeography)映射到 PostGIS
- android - 有没有办法从它的适配器重新加载一个片段?
- flutter - 使用 FutureBuilder 小部件时向错误跟踪服务报告 Future 未处理的异常