我想将图像从我的插件发布到处理图像并返回PDF的Servlet中。该servlet工作。我只是不知道如何处理我的插件生成的PDF。
const request= require("sdk/request").Request;
...
let req= request({
url: "http://localhost:8090/Whatever/PdfServlet",
content: params,
onComplete: function (response) {
console.log(response.text)
}
});
req.post();
在这里,对象参数包含base64编码的图像。一切正常,我可以在控制台日志中看到PDF流的开头。但是,如何使Firefox显示其“打开/保存”对话框,以便用户可以保存或查看PDF?
这是一个解决方案:
const querystring= require('sdk/querystring');
const winUtils= require('sdk/window/utils');
...
let stringStream= Cc["@mozilla.org/io/string-input-stream;1"].
createInstance(Ci.nsIStringInputStream);
stringStream.data= querystring.stringify(params);
let postData= Cc["@mozilla.org/network/mime-input-stream;1"].
createInstance(Ci.nsIMIMEInputStream);
postData.addHeader("Content-Type", "application/x-www-form-urlencoded");
postData.addContentLength = true;
postData.setData(stringStream);
winUtils.getMostRecentBrowserWindow().loadURI("http://localhost:8090/Whatever/PdfServlet", null, postData, null);
或者我可以打开一个新窗口,但是我不喜欢这样:
winUtils.openDialog({
args: ["http://localhost:8090/Whatever/PdfServlet", null, null, postData]
});
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句