uniapp H5/APP 导出流文件

uniapp H5/APP 导出流文件

// 文件请求
fequestFile(_url){
  const token = uni.getStorageSync('token');
  uni.showLoading({
				title: '加载中...'
			});
  // #ifdef APP-PLUS
	uni.downloadFile({
				url: _url,
				header: {
					Authorization: token
				},
				responseType: 'arraybuffer',  //请求格式
				success: (res) => {
					uni.hideLoading();
					if (res.statusCode == 200) {
						const tempFilePath = res.tempFilePath;
						uni.saveFile({
							tempFilePath,
							success: (res2) => {
								this.downloadFile(res2.savedFilePath);
							},
							fail: (err) => {
								uni.hideLoading();
								 uni.showToast({
			         title: res.errMsg,
			          icon: "none"
		           });
							}
						});
					} else {
					 uni.showToast({
			         title: res.errMsg,
			          icon: "none"
		           });
					}

				},
				fail: (err) => {
					uni.hideLoading();
		        uni.showToast({
			         title: res.errMsg,
			          icon: "none"
		           });
				}
			});

		// #endif

			// #ifndef APP-PLUS
			// h5下载
			uni.request({
				url: _url,
				method: 'get',
				responseType: 'arraybuffer',
				header: {
					Authorization: token,
				},
				success: res => {
					uni.hideLoading();
					if (res.statusCode == 200) {
						const url = window.URL.createObjectURL(new Blob([res.data]));
						const link = document.createElement('a');
						link.href = url;
						link.setAttribute('download', name); // 例如 'report.pdf'
						document.body.appendChild(link);
						link.click();
						document.body.removeChild(link);
						window.URL.revokeObjectURL(url);
					} else {
            uni.showToast({
			         title: res.errMsg,
			          icon: "none"
		           });
					}
				},
				fail: err => {
					uni.hideLoading();
					 uni.showToast({
			         title: res.errMsg,
			          icon: "none"
		           });
				}
			})
			// #endif
}


	// app端文件下载保存
	downloadFile(url) {
    const baseURL="...."// 地址
    const token = uni.getStorageSync('token');
    		let fileUrl = baseURL + url;
		uni.showLoading({
			title: '加载中...'
		});
		uni.downloadFile({
			url: fileUrl,
			success: (res) => {
				if (res.statusCode === 200) {
					uni.saveFile({
						tempFilePath: res.tempFilePath,
						success: (red) => {
							uni.hideLoading();
							uni.showToast({
								icon: 'none',
								mask: true,
								title: '文件已保存:' + red.savedFilePath, //保存路径
								duration: 3000
							});
							setTimeout(() => {
								uni.openDocument({
									filePath: red.savedFilePath,
									success: (ress) => {},
									fail(err) {}
								});
							}, 200);
						}
					});
				}
			}
		});
	},

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值