javascript - 绕过浏览文件/上传文件对话框

标签 javascript google-chrome google-chrome-extension firefox-addon

我正在构建供内部使用的 Chrome 扩展程序,用户可以一步上传文件。这总是同一个文件,我想跳过浏览对话框并直接将正确的值分配给输入字段。

该文件与插件代码是分开的。

这是否可以通过 Javascript 或开发 Chrome、Firefox 扩展来实现?

我试过:

input.val("file://C:/random.txt")

然后提交周围的表格。但这没有用。

最佳答案

如果您的目标是将文件发送到服务器,然后尝试在 <input> 中选择它字段是错误的方式 - 你可以创建一个 FormData object直接和send it via XMLHttpRequest .请注意,您还可以创建 FormData来自现有表单的对象。这在 Firefox 和 Chrome 中都有效,甚至在网页中也有效(当然,通常的同源限制适用)。

棘手的部分是获得 File object您可以将其添加到表单数据中。据我所知,除了使用 NPAPI 插件外,Chrome 扩展没有直接的文件系统访问权限——因此它们无法从用户的磁盘驱动器获取文件,它们只能创建一个包含一些数据的 blob。然而,Firefox 扩展有 File constructor这允许他们创建一个 File按路径对象。

所以在 Firefox 中你会做这样的事情:

var formdata = new FormData();
formdata.append("file", new File("file://C:/random.txt"));

var request = new XMLHttpRequest();
request.open("POST", "http://my.server/submitFile");
request.send(formdata);

关于javascript - 绕过浏览文件/上传文件对话框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13313026/

相关文章:

javascript - 将控制权从弹出窗口转移到内容脚本 - Google Chrome 扩展程序

javascript - 如何在 google-apps-script Web 应用程序的 for 循环函数中将 async/await 与 FileReader 一起使用?

javascript - 使用给定 ID 访问特定路径元素

javascript - Azure AD 预检请求未返回数据

javascript - getPropertyValue ('font-size' ) 为 firefox 和 chrome 返回不同的值

javascript - Chrome 扩展 : Get content of downloaded file

javascript - 动态更新 DOM 以适应新元素

javascript - Chrome 中 Canvas 图像上的 Three.js 安全错误

javascript - 将鼠标悬停在元素中包含的子输入文本字段上时,该元素触发mouseout或mouseleave事件

javascript - Google Chrome 扩展程序(扩展程序启动时触发事件)