离子文件传输:如何添加params下载URL

时间:2017-10-28 06:35:36

标签: javascript ionic-framework

我需要从服务器下载pdf文件。使用url,我需要传递自定义参数,例如分支ID,公司ID。有文件上传选项可以添加自定义参数,但没有任何内容可供下载。这是我的代码

let pdfParams ={
    "branch":"GST DEMO",
    "company":"GST DEMO",
    "finyr":"2017-2018",
}
const fileTransfer: FileTransferObject = this.transfer.create();
const url = 
 "http://192.168.125.75:32923/mfginventory/mobileserviceapi/ereportpdfGET";
let uri = encodeURI(url);
fileTransfer.download(uri,this.file.externalRootDirectory+'file.pdf') 
   .then((entry) => {
       console.log('download complete: ' + entry.toURL());
    }, (error) => {
       console.log(error);
    });

我的网址应该像

"http://192.168.125.75:32923/mfginventory/mobileserviceapi/ereportpdfGET?PID=1500966148428&params="+JSON.stringify(pdfParams);

但如果我这样给它显示错误“不支持HTTP版本”。任何想法都将不胜感激。

1 个答案:

答案 0 :(得分:0)

JSON.stringify(pdfParams)返回:

"{"branch":"GST DEMO","company":"GST DEMO","finyr":"2017-2018"}"

所以你的网址最终成为:

"http://192.168.125.75:32923/mfginventory/mobileserviceapi/ereportpdfGET?PID=1500966148428&params={"branch":"GST DEMO","company":"GST DEMO","finyr":"2017-2018"}"

这不是一种虚拟格式。我猜猜最后的网址应该是这样的吗?

http://192.168.125.75:32923/mfginventory/mobileserviceapi/ereportpdfGET?PID=1500966148428&branch=GST+DEMO&company=GST+DEMO&finyr=2017-2018

根据您需要支持的浏览器,您可以尝试使用URLSearchParams方法来实现目标。如果您需要IE支持,那么在SO上有很多简单的功能。

const searchParams = new URLSearchParams(pdfParams);
const fullUrl = "http://192.168.125.75:32923/mfginventory/mobileserviceapi/ereportpdfGET?PID=1500966148428&" + searchParams