download(index,data){
//php下载界面 访问该地址可以直接下载文件
let downloadUrl = 'http://www.kuang.com/admin_api/app_update/download';
//获取要下载的文件名的接口地址
let getFilename = 'http://www.kuang.com/admin_api/app_update/getFilename'; //
let id = data.id;
let reqData = {params: {id:id}}
axios.get(getFilename, reqData).then(response => {
let filename = response.data.info.filename;
//let url = window.URL.createObjectURL(new Blob([data]))
let link = document.createElement('a')
link.style.display = 'none'
link.href = downloadUrl+'?id='+id;
link.setAttribute('download',filename);
document.body.appendChild(link)
link.click()
})
}
//1 在php端写好下载的接口 文件通过地址能够直接访问
//2 请求一个获取文件名的接口 ,下载的时候直接用这个接口返回的文件名
//3 创建一个a标签 设置href就是php的下载接口 设置download的属性为获取的文件名
//4 模拟点击 直接利用php的接口来实现下载
//总结 php接口直接下载的时候 都是直接访问接口 接口去读取文件 然后交由浏览器去处理,内容可以是二进制或者字符串,而ajax请求的时候 接口返回的数据是交给js来处理的 而且内容必须是字符串。所以我这里的axios去请求的时候 只是去请求了一下文件名 然后创建一个标签模拟点击 跳转到php的下载页面 直接php接口下载,之后由js指定下载的文件名