如何使用火狐插件 SDK 从用户的系统上传文件

How to upload a file from the user's system using firefox addon sdk?

本文关键字:系统 文件 用户 何使用 火狐 插件 SDK      更新时间:2023-09-26

我是Javascript和Firefox插件编程的新手。

我正在使用附加 SDK 制作一个附加组件,该附加组件记录有关用户浏览活动的一些信息。我将file API与一些硬编码的文件名一起使用。

现在我想在服务器端分析这些日志文件,但我不希望用户完成查找文件并手动上传它们的过程。我想为用户提供一个按钮;单击这些文件将自动上传到服务器。

这种自动上传功能对于整个项目至关重要,因为它是一个面向研究的项目,如果他必须手动上传数据,则很难从用户那里获取数据。

实际的文件上传(通过multipart/form-data)相当复杂,但既然您控制的是服务器端 - 为什么不接受文件数据位于其中一个表单字段中的常规 POST 请求?因此,将数据发送到服务器的代码可能如下所示:

var file = require("sdk/io/file");
var {Request} = require("sdk/request");
var params = {};
params.log = file.read("c:''foo''bar.log", "b");
params.additional = "some additional form field";
Request({
  url: "https://example.com/uploadlog",
  content: params,
  onComplete: function(response)
  {
    console.log("Request sent");
  }
}).post();

你可以在任何可以触发此代码的地方放置一个按钮。