uniapp小程序接口返回文件流下载文件

uniapp小程序接口返回文件流数据,下载导出文件

使用uni.request post方法获取文件流,如果是get可以使用uni.downloadFile

复制代码
exportfun(){
	uni.request({
		url: 'xxx',
		data: {},
		method:'POST',
		responseType: 'arraybuffer',
		header: {},
		success: (res) => {
			const fs = uni.getFileSystemManager(); // 获取全局唯一的文件管理器 
			const fileName = !res.header['Content-Disposition']?'xxx文件':decodeURIComponent(res.header['Content-Disposition'].match(/filename="?(.+)"?/)[1]) //文件名
			fs.writeFile({ //写文件
				// uni.env.USER_DATA_PATH 是小程序提供的访问用户文件路径的变量
				filePath: uni.env.USER_DATA_PATH + '/' + fileName,
				data: res.data,  // res.data就是接口返回的文件流
				encoding: "binary", //二进制流文件必须是 binary
				success(e) {
					uni.openDocument({ // 打开文档
						filePath: uni.env.USER_DATA_PATH + '/' + fileName, // 上面存入的文件路径
						showMenu: true, // 显示右上角菜单
						success: function(res2) {
							console.log("打开文件",res2); 
						},
					})
				}
			})
		}
	});
}

获取 返回的文件流 文件名称

复制代码
const Disposition=res.header['Content-Disposition']
const fileName =Disposition.match(/filename="?(.+)"?/)[1]
//如果返回乱码需要使用decodeURIComponent转换
fileName =decodeURIComponent(fileName)
相关推荐
小小小小宇8 分钟前
前端看go并发
前端
前端Hardy16 分钟前
Cursor Rules 完全指南(2026 最新版)
前端·javascript·面试
程序员陆业聪17 分钟前
微前端状态管理的真相:Module Federation + 跨应用通信实战
前端
牛奶30 分钟前
浏览器是怎么把代码变成页面的?
前端·javascript·chrome
flytam31 分钟前
Claude Agent SDK 深度入门指南
前端·aigc·agent
weixin199701080161 小时前
《电天下商品详情页前端性能优化实战》
前端·性能优化
速易达网络1 小时前
vue+echarts开发的图书数字大屏系统
前端
小智社群1 小时前
贝壳获取小区的名称
开发语言·前端·javascript
Ferries1 小时前
《从前端到 Agent》系列|03:应用层-RAG(检索增强生成,Retrieval-Augmented Generation)
前端·人工智能·机器学习
菲利普马洛1 小时前
记一次主题闪烁问题
前端·css·react.js