Vue.js 使用vuejs从php服务器下载文件
我的应用程序运行在CakePHP上,vuejs作为前端js框架 我正在向服务器发出axios请求以生成输出文件,该文件在cakephp的webroot文件夹中生成Vue.js 使用vuejs从php服务器下载文件,vue.js,cakephp,cakephp-3.0,Vue.js,Cakephp,Cakephp 3.0,我的应用程序运行在CakePHP上,vuejs作为前端js框架 我正在向服务器发出axios请求以生成输出文件,该文件在cakephp的webroot文件夹中生成 Api() .get('/articles/downloadFile') .then(response => { }); 如何通过vuejs下载生成的文件?您需要在axios调用中将responseType作为blob传递。像这样的 .get('/articles/downloadFile', {responseType: '
Api()
.get('/articles/downloadFile')
.then(response => {
});
如何通过vuejs下载生成的文件?您需要在
axios
调用中将responseType
作为blob
传递。像这样的
.get('/articles/downloadFile', {responseType: 'blob'})
然后,当承诺解析为在DOM中生成href
元素并下载该项目时
.then((response) => {
const url = window.URL.createObjectURL(new Blob([response.data]));
const link = document.createElement('a');
link.href = url;
link.setAttribute('download', 'image.png');
document.body.appendChild(link);
link.click();
})
我假设您正在下载一个图像,您需要为您的用例更改名称和扩展名
这里有一个完整的例子
注意:要使此功能正常工作(即使只是GET调用),您的CORS策略必须允许此调用。您需要在
axios
调用中将responseType
作为blob
传递。像这样的
.get('/articles/downloadFile', {responseType: 'blob'})
然后,当承诺解析为在DOM中生成href
元素并下载该项目时
.then((response) => {
const url = window.URL.createObjectURL(new Blob([response.data]));
const link = document.createElement('a');
link.href = url;
link.setAttribute('download', 'image.png');
document.body.appendChild(link);
link.click();
})
我假设您正在下载一个图像,您需要为您的用例更改名称和扩展名
这里有一个完整的例子
注意:要使此功能正常工作(即使只是GET调用),您的CORS策略必须允许此调用。您可以使用
window.open('/articles/downloadFile')
您可以使用window.open('/articles/downloadFile')
我正在从服务器返回一个csv文件。我的cakephp服务器只能返回JSON响应。我正在从服务器返回一个csv文件。我的cakephp服务器只能返回JSON响应。