Vue+Axios从后端下载文件

1. 后端

基于 django

from django.http import StreamingHttpResponse

	dPicPath = os.path.join(path, "shuge.tiff")
	response = StreamingHttpResponse(open(dPicPath, 'rb'))
	response['content_type'] = "application/octet-stream"
	response['Content-Disposition'] = 'attachment; filename=' + os.path.basename(dPicPath )
	return response
2. 前端
methods: {
	async downResult(record, row, index) {
		let token = Cookies.get("token");
		let formdata = new FormData();
	    formdata.append("id", this.queryId);
	    axios({
	    	method: "get",
	        url: "127.0.0.1/getfile/"
	        responseType: "blob",
	        headers: {
	          authorization: "Bearer " + token,
	          "Content-Type": "application/json",
	        },
	    }).then((res) => {
	        const blob = new Blob([res.data], { type: "image/tiff" });
	        let patt = new RegExp("filename=([^;]+\\.[^\\.;]+);*");
	        let contentDisposition = res.headers["content-disposition"];
	        let result = patt.exec(contentDisposition);
	        let fileName = decodeURI(result[1]);
	        const elink = document.createElement("a");
	        elink.download = fileName;
	        elink.style.display = "none";
	        elink.href = URL.createObjectURL(blob);
	        document.body.appendChild(elink);
	        elink.click();
	        URL.revokeObjectURL(elink.href); // 释放URL 对象
	        document.body.removeChild(elink);
      });
    },
}
桃花仙人种桃树_又摘桃花换酒钱_ 桃花仙人种桃树_又摘桃花换酒钱_ 桃花仙人种桃树_又摘桃花换酒钱_ 桃花仙人种桃树_又摘桃花换酒钱_ 桃花仙人种桃树_又摘桃花换酒钱_ 桃花仙人种桃树_又摘桃花换酒钱_ 桃花仙人种桃树_又摘桃花换酒钱_ 桃花仙人种桃树_又摘桃花换酒钱_ 桃花仙人种桃树_又摘桃花换酒钱_ 桃花仙人种桃树_又摘桃花换酒钱_

.
.
.
.
.
.


桃花仙人种桃树,又摘桃花换酒钱_

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值