現在FireFox34.0.5でアドオン開発を行っているのですが、どうしてもわからないので質問させていただきます。
以前のFFでファイルをダウンロードするアドオンを作成して居ました。 その中で大体以下のような方法をとってファイルを保存するようにしていたのですが、 バージョンアップによりこの方法ではエラーが出るようになり新しい方法を利用することにしました。 //パーシスタンス var persist = Components.classes["@mozilla.org/embedding/browser/nsWebBrowserPersist;1"].createInstance(Components.interfaces.nsIWebBrowserPersist); //ファイルを保存する persist.saveURI(sourceURI,null,refererURI,null,null,targetURI,privacyContext);
MDNにあったものを転用しテスト用のものをこしらえたのですが、 この場合fileNameに日本語が含まれると保存したファイル名が文字化けしてしまいます。 この解消の方法を教えていただきたいのです。
var fileName="あいうえおABCDE.jpg"; function downloadFile(httpLoc,referer,fileName) { Task.spawn(function () { let list = yield Downloads.getList(Downloads.ALL);
let view = { onDownloadAdded: download => console.log("Added", download), onDownloadChanged: download => console.log("Changed", download), onDownloadRemoved: download => console.log("Removed", download) }; var Dir='C:\\'; yield list.addView(view); try { let download = yield Downloads.createDownload({ source: httpLoc, target: Dir+decodeURIComponent(encodeURIComponent(fileName)), }); list.add(download); try { download.start(); alert("Now monitoring all downloads. Close the message to stop."); } finally { yield list.remove(download); yield download.finalize(true); } } finally { yield list.removeView(view); } }).then(null, Components.utils.reportError);
現在FireFox34.0.5でアドオン開発を行っているのですが、どうしてもわからないので質問させていただきます。
以前のFFでファイルをダウンロードするアドオンを作成して居ました。 その中で大体以下のような方法をとってファイルを保存するようにしていたのですが、 バージョンアップによりこの方法ではエラーが出るようになり新しい方法を利用することにしました。 //パーシスタンス var persist = Components.classes["@mozilla.org/embedding/browser/nsWebBrowserPersist;1"].createInstance(Components.interfaces.nsIWebBrowserPersist); //ファイルを保存する persist.saveURI(sourceURI,null,refererURI,null,null,targetURI,privacyContext);
MDNにあったものを転用しテスト用のものをこしらえたのですが、 この場合fileNameに日本語が含まれると保存したファイル名が文字化けしてしまいます。 この解消の方法を教えていただきたいのです。
var fileName="あいうえおABCDE.jpg"; function downloadFile(httpLoc,referer,fileName) { Task.spawn(function () { let list = yield Downloads.getList(Downloads.ALL);
let view = { onDownloadAdded: download => console.log("Added", download), onDownloadChanged: download => console.log("Changed", download), onDownloadRemoved: download => console.log("Removed", download) }; var Dir='C:\\'; yield list.addView(view); try { let download = yield Downloads.createDownload({ source: httpLoc, target: Dir+decodeURIComponent(encodeURIComponent(fileName)), }); list.add(download); try { download.start(); alert("Now monitoring all downloads. Close the message to stop."); } finally { yield list.remove(download); yield download.finalize(true); } } finally { yield list.removeView(view); } }).then(null, Components.utils.reportError);
|