2012-08-09 53 views
0

我是剛接觸Javascript和Firefox的插件編程。如何使用firefox addon sdk從用戶系統上傳文件?

我正在製作一個插件,附加SDK包含一些關於用戶瀏覽活動的信息。我使用file API以及一些硬編碼的文件名。

現在我想分析服務器端的這些日誌文件,但我不希望用戶通過手動定位文件和上傳它們的過程。我想爲用戶提供一個按鈕; onclicking這些文件將被自動上傳到服務器。

這個自動上傳功能對於整個項目來說非常重要,因爲它是一個面向學習的項目,如果用戶需要手動上傳數據,將很難從用戶那裏獲取數據。

+0

鏈接不再工作,並且API文檔(API版本1.14)上沒有提及「文件」模塊。是否有相應的低級API? – Bora 2013-06-27 14:07:27

回答

4

實際的文件上傳(通過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(); 

而且你可以在任何地方放了一個按鈕,將觸發該代碼。

+0

我可以使用郵寄發送的數據的大小是否有限制? – Shatu 2012-08-09 10:54:00

+0

@Shatu:只有您在服務器上定義的內容。 – 2012-08-09 12:38:57

+0

文件模塊似乎不再存在。你知道任何更換嗎? – Bora 2013-06-27 14:08:30

相關問題