uniapp微信小程序 选择聊天记录文件上传

这篇具有很好参考价值的文章主要介绍了uniapp微信小程序 选择聊天记录文件上传。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

精简版总结

示例

容易踩的坑

1、页面刷新问题

2、extension问题


精简版总结

单文件

wx.chooseMessageFile({
	count: 1,//限制选择的文件数量
	type: 'file',//非图片和视频的文件,不选默认为all
  //type:'video',//视频
  //type:'image',//图片
	success (res) {
	 const tempFilePaths = res.tempFiles
		 uni.uploadFile({
			url: 'https://....', 
			filePath: tempFilePaths[0].path,//选择单个路径
			name: 'file',//后端需要拿到这个Key来获取二进制文件内容
			header:{
				'X-Token':'Bearer ' + store.state.app.token
			},
			formData:{
				'month':that.date
			},
			success: (uploadFileRes) => {
                //接口返回的数据
				console.log(uploadFileRes.data);
                //接口返回的状态码
				console.log(uploadFileRes.status);
			}
		});
	
	}
})

多个文件

wx.chooseMessageFile({
	count: 10,//限制选择的文件数量
	type: 'file',//非图片和视频的文件,不选默认为all
  //type:'video',//视频
  //type:'image',//图片
	success (res) {
	 const tempFilePaths = res.tempFiles
		 uni.uploadFile({
			url: 'https://....', 
            files:tempFliePaths,//接受的是数组
			header:{
				'X-Token':'Bearer ' + store.state.app.token
			},
			formData:{
				'month':that.date
			},
			success: (uploadFileRes) => {
                //接口返回的数据
				console.log(uploadFileRes.data);
                //接口返回的状态码
				console.log(uploadFileRes.status);
			}
		});
	
	}
})

PS:files和filePath/name只能二选一组

示例

此处用xlsx文件作实例,选择聊天记录中的xlsx文件上传到指定接口中。

let that=this//保留vue实例
wx.chooseMessageFile({
	count: 1,//限制选择的文件数量
	type: 'file',//非图片和视频的文件,不选默认为all
    extension:['xlsx','.xlsx'],//此处限制文件类型
	success (res) {
	 const tempFilePaths = res.tempFiles
	 console.log('临时路径',tempFilePaths)
		 uni.uploadFile({
			url: 'https://....', 
			filePath: tempFilePaths[0].path,
			name: 'file',
			header:{
				'X-Token':'Bearer ' + store.state.app.token
			},
			formData:{
				'month':that.date
			},
			success: (uploadFileRes) => {
                //接口返回的数据
				console.log(uploadFileRes.data);
                //接口返回的状态码
				console.log(uploadFileRes.status);
			}
		});
	}
})

因为某些微信版本extension可能不生效,或者又想要对提交的文件名做校验,建议参考我下面的代码。

let that=this//保留vue实例
wx.chooseMessageFile({
	count: 1,//限制选择的文件数量
	type: 'file',//非图片和视频的文件,不选默认为all
	success (res) {
	 const tempFilePaths = res.tempFiles
	 console.log('临时路径',tempFilePaths)
	 let filename = res.tempFiles[0].name
	 //客制化判断文件名,判断是不是xlsx文件,仅为参考,可自行变化
	 if(filename.lastIndexOf('.xlsx')==filename.length-5){
		 uni.uploadFile({
			url: 'https://....', 
			filePath: tempFilePaths[0].path,
			name: 'file',
			header:{
				'X-Token':'Bearer ' + store.state.app.token
			},
			formData:{
				'month':that.date
			},
			success: (uploadFileRes) => {
                //接口返回的数据
				console.log(uploadFileRes.data);
                //接口返回的状态码
				console.log(uploadFileRes.status);
			}
		});
		
	 }else{
         //客制化提示文件类型错误
		 uni.showToast({
			title: '请选择xlsx文件',
			icon:'error',
			duration: 2000
		 });
	 }

	}
})

容易踩的坑

1、页面刷新问题

调用chooseMessageFile会离开页面,再次返回时,会触发每次加载进来的生命周期,如uniapp的onShow,如果onShow对数据进行过处理。则uni.uploadFile()方法调用时,数据已经是新数据。如代码中的that.date。

2、extension问题

  extension:['xlsx','.xlsx'],//此处限制文件类型

大家可能发现,为什么这里写了两种,是因为ios的文件扩展名管理中没有一点“.”,如果不做兼容,则Ios端小程序会出错。

当没有限制过滤时,ios和安卓如下图所示。

uniapp微信小程序 选择聊天记录文件上传
ios没有限制
uniapp微信小程序 选择聊天记录文件上传
安卓没有限制

 当有正确限制时,即".xlsx"和"xlsx",如下图所示。

uniapp微信小程序 选择聊天记录文件上传
ios有限制
uniapp微信小程序 选择聊天记录文件上传
安卓有限制

 当限制错误,没有适配ios时,即没有"xlsx"

uniapp微信小程序 选择聊天记录文件上传
ios限制错误

 可以看见什么都没有了,如果安卓没有适配".xlsx",也应该类似,这里没有作测试。

如果有更多的坑,欢迎评论补充。文章来源地址https://www.toymoban.com/news/detail-493937.html

到了这里,关于uniapp微信小程序 选择聊天记录文件上传的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • 信息搜集-读取微信聊天记录

    信息搜集-读取微信聊天记录

    在攻防演练的钓鱼上线后,如果被钓的人使用微信,这时候可以通过读取微信里的聊天记录进行进一步搜集。 使用公开Github项目 https://github.com/AdminTest0/SharpWxDump 编译命令:C:WindowsMicrosoft.NETFrameworkv4.0.30319csc.exe .Program.cs /platform:x86 首先获取微信的Wechatkey ==》找到对应聊天

    2023年04月10日
    浏览(52)
  • 微信聊天记录导出(华为手机版)

    关于微信记录导出的有比较多的方法, 在这里进行汇总下, 以下都是经过我亲测可行的, 不要去买一些付费的软件, 自己手动操作下就好啦 主要参考这两篇文章: 微信聊天记录导出为电脑txt文件教程 微信聊天记录导出(2020新版) 具体步骤: 1.先登录电脑版微信 2.备份与迁移, 选择备

    2024年02月09日
    浏览(44)
  • python解密微信聊天记录

    python解密微信聊天记录

    链接: 傻瓜教程:使用小米系列手机提取微信聊天记录并制作词云图 链接: 手机端微信聊天记录数据库解密过程

    2024年02月07日
    浏览(356)
  • 微信聊天记录导出的开源项目,火了!

    微信聊天记录导出的开源项目,火了!

    大家好,我是 Jack。 今天又是分享开源项目的一天。 最近想训练一个符合某人说话风格的 AI,微信的聊天记录里就有着丰富的训练数据。 聊天记录是珍贵的记忆,也是每一场对话、每一个互动的真情流露。 想要拿到这些数据,无论是保存备份还是用于 AI 训练,手动拷贝都不

    2024年01月16日
    浏览(42)
  • Python uiautomation获取微信内容!聊天记录、聊天列表、全都可获取

    Python uiautomation获取微信内容!聊天记录、聊天列表、全都可获取

    Python uiautomation 是一个用于自动化 GUI 测试和操作的库,它可以模拟用户操作来执行各种任务。 通过这个库,可以使用Python脚本模拟人工点击,人工操作界面。本文使用 Python uiautomation 进行微信电脑版的操作。 以下是本次实验的版本号。 你需要安装 uiautomation 示例代码 代码解

    2024年02月04日
    浏览(44)
  • 导出手机微信聊天记录全攻略

    导出手机微信聊天记录全攻略

    12-5 在我们日常使用微信的过程中,有时候很需要把聊天记录导出到电脑的Excel表格中,或者导出到网页中。 但是有个软件叫【 微信聊天记录挖掘机 】,可以把微信电脑版的聊天记录导出,那在手机微信中的聊天记录怎么办呢? 其实微信本身就带有迁移功能,只需要把手机

    2024年02月04日
    浏览(46)
  • 微信录屏怎么录?微信聊天记录怎么录制下来

    微信录屏怎么录?微信聊天记录怎么录制下来

    微信作为我们日常使用的沟通工具,里面保留着许多的信息。在有些时候,我们可能会遇到需要用录屏功能,将微信里的信息分享出去的场景。可是微信自身是不带录屏功能的,微信录屏怎么录?我们究竟要怎么将信息给录制下来呢?下面小编详细地介绍一下。   一.手机微

    2024年02月09日
    浏览(43)
  • 电脑微信聊天记录迁移微信文件迁移备份恢复

    电脑微信聊天记录迁移微信文件迁移备份恢复

    前言 前提:尽量保持微信版本号一致。 首先让我们了解一下微信官方聊天记录保存规则(只有手机的保存规则,但是原理都是一样的) 此文章方法原理:微信PC版一定要保证原来的路径目录,且一定要同时拷贝【All Users】目录。原因是【All Users】目录里保存一些配置信息及

    2024年02月10日
    浏览(43)
  • 如何在 iPhone 上恢复微信聊天记录!

    如何在 iPhone 上恢复微信聊天记录!

    如今,微信拥有庞大的用户群,很多人用它来沟通、支付、点餐等与我们日常生活相关的事情,我们的生活已经离不开它,它功能强大,使用方便,给我们带来了很多便利. 有时我们可能会不小心删除或丢失了微信消息,或者切换微信帐号导致某些记录丢失。在这些问题上,

    2024年02月11日
    浏览(43)
  • 记一次iOS微信恢复聊天记录的尝试

    记一次iOS微信恢复聊天记录的尝试

    最近手机坏了,为了到天才吧维修手机,为手机做了一个爱思助手的全备份。结果手机修好之后爱思助手无法恢复备份到手机。之前从来没有想到过iOS备份会失效,所以没有对微信聊天记录做单独的备份。尝试了2次无法恢复,确认不是偶然无法恢复,于是我尝试了多种办法,

    2024年02月10日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包