首页 > 编程语言 >uniapp小程序(原生微信小程序也可以使用),获取接口二进制流数据上传文件到服务器

uniapp小程序(原生微信小程序也可以使用),获取接口二进制流数据上传文件到服务器

时间:2023-07-20 14:46:42浏览次数:38  
标签:uniapp success url 微信 程序 接口 res uni

需求:通过接口返回的二进制流数据,这个流数据他是一个xlsx文档,需要给到用户一个文档线上连接。

下面是具体代码,注意只针对二进制的文件数据,如果图片上传直接调用uploadFile就可以,并且兼容原生微信小程序。

export function exportExcel1(query) {
	uni.showLoading({
		title: '正在导出...',
		mask: true
	});
	// 这个是get接口参数 setUrlQuery 是我自定义的函数封装 主要是拼接url参数的
	let obj = {
		"personnelIdList":state.personnel.list.map((item)=>item.personnelId),
		"projectId":store.project.projectId,
		...query
	};
	// 调用接口 获取二进制流 进行下载并且获取临时文件地址
	uni.downloadFile({
		url:env.ApiUrl+'/personnel/laborer/exportExcel'+uni.setUrlQuery(obj),
		header: {
		    'content-type': 'application/json',
		    'Authorization' : 'Bearer ' + storage.getItem('Authorization')
		},
		success(res){
			let tempFilePath = res.tempFilePath; // 获取微信返回的临时系统文件地址
			uni.uploadFile({
				url: env.ApiUrl + 'xxx', // 上传文件接口
				formData: {}, // 除文件外其他所有数据,传对象,会默认转换为 FormData
				filePath: tempFilePath, // 上传临时的系统文件地址
				header: {
				    'content-type': 'application/json',
				    'Authorization' : 'Bearer ' + storage.getItem('Authorization')
				},
				name: 'file', // 注意与后端约定的字段名称
				success(res){
					uni.hideLoading();
					// 弹窗提示导出成功 用户点击确定复制url文件地址
					uni.showModal({
						title: '导出成功',
						content: '已生成当前列表人员数据文档!',
						cancelText: '取消',
						confirmText: '复制URL',
						success: function (res) {
							if (res.confirm) {
								// 获取url 进行复制
								uni.setClipboardData({
									data:result,
									success() {},
								});
							}
						}
					});
					// 文件预览
					// uni.openDocument({
					// 	filePath: 'url',// 可以是微信给的系统临时url地址,也可以是正式的线上地址
					// 	success: (sus) => {
					// 		console.log('成功打开');
					// 	},
					// });
				}
			});
		}
	});
};

 

标签:uniapp,success,url,微信,程序,接口,res,uni
From: https://www.cnblogs.com/Allen-project/p/17568366.html

相关文章

  • 进程运行与程序流
    进程运行程序运行有2种前台运行程序运行在当前的终端,所有的信息都输出到屏幕上,占用你的终端,你也无法继续使用;如果终端异常关闭,导致程序会自动退出后台运行不会占用你的终端,程序在系统后台跑着,你该干啥干啥,终端关了,程序也继续运行。后台运行命令command&#未启动的com......
  • Linux 下运行.NET 6 7 8 程序遇到的两个问题
    一、/lib64/libstdc++.so.6:version`GLIBCXX_3.4.21‘notfound的解决办法1.下载libstdc++.so.6.0.21文件注意区分x84_64和aarch64架构,下载对应的版本2.把libstdc++.so.6.0.21复制到/lib64/libstdc++.so.6.0.213.运行命令exportLD_PRELOAD="/lib64/libstdc++.s......
  • linux怎么让程序开机自动启动
    https://zhidao.baidu.com/question/1609108067350090187.html目录下的脚本文件,可以使init自动启动其它程序。例如:编辑/etc/rc.d/rc.local文件(该文件通常是系统最后启动的脚本),在文件最末加上一行“xinit”或“startx”,可以在开机启动后直接进入X-Window。......
  • 1-23 编写一个删除 C 语言程序中所有的注释语句
    ArchlinuxGCC13.1.1 202304292023-07-2013:34:31星期四 点击查看代码#include<stdio.h>#defineTRUE1#defineFALSE0intmain(){inti,j,sign;chartmp[100]="";FILE*fp;FILE*fp_store;//另创建文件,保存修改i=j=0......
  • Taro 小程序扫二维码跳转到指定页面
    小程序扫码登录,需要在微信小程序开发管理->开发设置->扫普通链接二维码打开小程序去添加对应的链接,然后根据链接动态动态生成二维码,然后使用微信扫码的即可跳转到小程序指定页面,具体添加链接方式,请自行百度这里主要介绍两个东西1.Taro小程序下根据链接动态生成二维码2.扫码跳......
  • win nginx 用include管理多个配置文件,如部署多个web前端程序 配置host域名访问
    当要部署多个web程序时,先将web程序分文件夹到html, 1在conf目录下新建conf-test/test_web.conf内容为:server{ listen80; server_namewebone.com; location/{ roothtml/web1; indexindex.htmlindex.htm; }}server{ listen80; serve......
  • uniapp获取设备信息:uni.getSystemInfo或uni.getSystemInfoSync,可用于设置顶部安全区
    uniapp获取设备信息:uni.getSystemInfo或uni.getSystemInfoSync,可用于设置顶部安全区letsysInfo=uni.getSystemInfoSync();console.log(sysInfo);//{SDKVersion:"2.33.0"appId:"__UNI__EEB4CD4"appLanguage:"zh-Hans"appName:"sc-vue3"a......
  • 使用mpx创建小程序并使用tailwind
    #cli创建项目mpxcreatempx-project#切换到新的mpx-project中cdmpx-project把 @mpxjs/webpack-plugin 版本改为 2.8.32#安装包yarn执行:yarnadd-Dtailwindcssweapp-tailwindcss-webpack-pluginpostcss-rem-to-responsive-pixel安装 weapp-tailwindcss#......
  • 小程序报错:【代码依赖分析】告警信息修改代码,或关闭【过滤无依赖文件】功能
    小程序报错:【代码依赖分析】告警信息修改代码,或关闭【过滤无依赖文件】功能控制台报如下问题“已被代码依赖分析忽略,无法被其他模块引用。你可根据控制台中的【代码依赖分析】告警信息修改代码,或关闭【过滤无依赖文件】功能”,也就是将一些需要的依赖被分析为无依赖文件过滤掉了,导......
  • Taro 小程序自定义热门城市选择页
    先上一下大致效果由于业务需要一个单独全国城市筛选页面,然后就网上找了一波,发现没有特别合适的,于是就手动撸一个,需要当前页面具备以下功能:1.定位当前所在城市2.展示热门城市信息3.清空当前城市选择4.支持本地快捷搜索5.列表数据支持分页展示(主要是城市数据量太大,页面渲染......