微信小程序下载后端返回的文件流

			downtest() {
				let temp = {
					"title": ["排名", "车号", "车队", "车手", "领航", "赛段成绩", "距首车成绩", "距前车差距", "发车时间", "冲刺时间", "赛段用时", "罚时",
						"补时"
					],
					"value": [
						[1, "111", "车队", "xx", "xx", "00时49分59秒0毫秒", "-", "-", "10点20分10秒8毫秒", "11点10分09秒9毫秒",
							"00时49分59秒0毫秒", "00时00分10秒8毫秒", "", "https://xxxx/assets/images/no-image.jpg"
						],
						[2, "1", "车队", "xxx", "xx", "01时00分00秒0毫秒", "00时00分11秒0毫秒", "00时00分11秒0毫秒",
							"10点10分10秒8毫秒", "11点10分10秒8毫秒", "01时00分00秒0毫秒", "", "",
							"https://xxxx/assets/images/no-image.jpg"
						],
						[3, "666", "66", "666", "66", "01时04分51秒0毫秒", "00时00分15秒0毫秒", "00时00分04秒0毫秒",
							"10点20分10秒8毫秒", "11点25分01秒8毫秒", "01时04分51秒0毫秒", "", "",
							"https://xxxx/assets/images/no-image.jpg"
						],
						[4, "123", "xxx", "xx", "xx", "04时00分59秒0毫秒", "00时03分11秒0毫秒", "00时02分56秒0毫秒",
							"8点48分00秒0毫秒", "12点48分59秒789毫秒", "04时00分59秒0毫秒", "", "",
							"https://xxxx/uploadfilev2/image/0/501/261/2023-08/16927686744833.png"
						]
					]
				}
				let obj = {
					file_name: 'ces',
					data: JSON.stringify(temp)
				}
				let header = {
					// #ifdef MP-WEIXIN
					"User-Agen": 'miniProgram',
					// #endif
					// #ifdef H5
					"User-Agen": 'h5',
					// #endif
				}
				uni.request({
					url: `请求url`,
					header: header,
					method: 'post',
					responseType: "arraybuffer",
					data: obj,
					success: (res) => {
						let temp = res.statusCode == 200 ? res.data : res
						const fs = wx.getFileSystemManager(); //获取全局唯一的文件管理器 
						fs.writeFile({ //写文件
							filePath: wx.env.USER_DATA_PATH +
								"/统计报表.xlsx",
							data: temp, // res.data就是获取到的二进制文件流
							encoding: "binary", //二进制流文件必须是 binary
							success(e) {
								wx.openDocument({ // 打开文档
									filePath: wx.env.USER_DATA_PATH +
									"/统计报表.xlsx", //拿上面存入的文件路径
									showMenu: true, // 显示右上角菜单
									success: function(x) {
										console.log("successfun", x);
									},
								})
							},
							fail: (err) => {
								// 文件下载失败的相关处理
								console.log('download fail', err);
							}
						})
					}
				})
			},

responseType: "arraybuffer",  请求后端的二进制文件流 必须要加这段声明 ,否则会导致下载的文件打不开或者打开空白

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值