我正在构建供内部使用的 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/