uniapp中实现文件下载功能

记录uniapp开发中实现文件下载

1.前端页面下载按钮
<view class="u-body-item u-flex u-row-between u-col-between u-p-b-0">
	<view class="u-body-item-title u-line-2" style="width: 160rpx;">文件</view>
	<text @click="handleRow(tableData,'download')"style="text-align: right;">
<u-icon color="#2979ff" name="download"size="36"></u-icon>下载文件</text>
</view>
2.接口调用,文件下载函数
//调用文件接口
this.http({
						url: 'x-download/fileDownload',
						method: 'post',
						data: {
							Id: id
						},
						responseType: 'blob',
						success: (res) => {
							const data = res.data
							if (res.code == 200) {
								this.$refs.uToast.show({
									title: res.message || res.msg || '下载失败!',
									type: 'warning'
								})

							} else {
								let blobFile = new Blob([data]) // res接口返回的文件流
								let blob = URL.createObjectURL(blobFile)
								//解码文件名
								this.downloads(blob, `文件名${name}`);
							}
						}
					})

// 下载文件函数
			downloads(blob, name) {
				this.$refs.uToast.show({
					title: '文件' + name + '下载中...',
					type: 'success'
				})
				let a = document.createElement('a')
				a.style.display = 'none'
				a.download = name + '.pdf'
				a.href = blob
				a.click()
			},

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值