我創建一個Web擴展和從XUL移植。我曾經可以很容易地閱讀文件Firefox網頁擴展 - 讀取本地文件(上次下載的文件)
var dJsm = Components.utils.import("resource://gre/modules/Downloads.jsm").Downloads;
var tJsm = Components.utils.import("resource://gre/modules/Task.jsm").Task;
var fuJsm = Components.utils.import("resource://gre/modules/FileUtils.jsm").FileUtils;
var nsiPromptService = Components.classes["@mozilla.org/embedcomp/prompt-service;1"].getService(Components.interfaces.nsIPromptService);
....
NetUtil.asyncFetch(file, function(inputStream, status) {
if (!Components.isSuccessCode(status)) {
return;
}
var data = NetUtil.readInputStreamToString(inputStream, inputStream.available());
var data = window.btoa(data);
var encoded_data_to_send_via_xmlhttp = encodeURIComponent(data);
...
});
這將被棄用。
我可以使用downloads.download()知道什麼是最後下載,但我無法讀取該文件,然後得到encoded_data_to_send_via_xmlhttp
而且在Firefox 57起等價,意味着我必須嘗試通過按鈕點擊或者其他東西來僞造用戶操作,或者上傳文件。
Access to file:// URLs or reading files without any explicit user input
是不是有一個簡單的方法來讀取上次下載的文件?
從url中讀取文件eg 「/下載/隨機的。txt' - 這是什麼必須閱讀,然後發佈 – user1320651
請參閱[本文](https://developer.mozilla.org/en-US/Add-ons/WebExtensions/Working_with_files)中的信息以及鏈接的代碼例子。 – K3N
沒有幫助。無論如何我無法讀取文件 – user1320651