如何不通过input表单选取文件,直接通过文件路径获取到文件然后调接口传给后端

蓝桉
  • 1
新手上路,请多包涵

我现在可以获取到想要传的文件路径,有没有方法不通过input来获取到文件数据,js或者vue直接获取有没有相关的方法,求解求解

回复
阅读 1.6k
5 个回答

chrome文件系统, 方法:

window.showOpenFilePicker()

返回一个Promise

fhtwl
  • 32

无法做到。浏览器客户端不支持直接访问本地文件,只能通过input窗口(准确的说是input调出的系统文化选择窗口)访问。且input这种方式,也是选取文件时将本地文件缓存到浏览器,然后用户将这个缓存的临时文件上传,也就是用户无法访问到文件在客户端的真是路径

你的意思是在前端这样处理?

如果你开发前端应用程序只是利用了javascript语言、vue等技术,比如用Eletron来开发客户端程序,是可以这样做的。
如果是普通的web页面,希望前端这样处理,因为浏览器安全策略,是不可能做到的。

做不到的,在普通的web页面中是无法直接做到通过路径来找到文件,这不是代码能够实现的 这是浏览器本身的问题

嘿嘿
  • 242

选文件是必须的,想象一下如果无需用户选择网站可以直接读取系统文件是一个多可怕的事情。

但选文件不一定要通过文本输入框,可以使用较新的 showOpenFilePicker(兼容性太差),或者拖拽文件到浏览器 drop 事件,或者写一个隐藏的输入框然后脚本触发点击就可使用按钮等方式来调用文件选择。

并且出于安全考虑,选择的文件是无法知晓路径的,文件路径会是 fakepath

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏