uniapp下载和上传照片

这篇具有很好参考价值的文章主要介绍了uniapp下载和上传照片。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

利用uniapp开发的时候,需要下载和上传照片,在H5和微信小程序中的写法不一样。

H5环境下

浏览器中下载就是模拟超链接下载。也不需要获取什么权限,比较简单。

// #ifdef H5
this.isLoading = true;
let oA = document.createElement("a");
// 设置下载的文件名,不设置就是默认的
oA.download = ''; 
// 图片下载链接
oA.href = imgUrl;
document.body.appendChild(oA);
oA.click();
oA.remove(); // 下载之后把创建的元素删除
this.isLoading = false;
// #endif

微信小程序

小程序下载需要先获取相册权限。

downloadPic() {
	// #ifdef MP-WEIXIN
	this.checkAppRight();
	// #endif 
	// #ifdef H5
	...
	// #endif
},
// 先校验权限
checkAppRight() {
    // 检查是否之前就调用过uni.authorize
	if (!this.isAuthorize) {
		uni.authorize({
			// 请求相册写入权限
			scope: 'scope.writePhotosAlbum',
			success: () => {
				this.downloadImgOnPhone();
			}
		});
		return;
	}
	// 检查当前小程序的设置信息,这个设置可以看下面的图片说明是什么设置
	uni.getSetting({
	    // 这里可能会触发报错:this 为 undefined,建议使用箭头函数,不要使用普通函数,否则在小程序中调用this会报错。
		success: (res) => {
			// 如果没有相册写入权限,需要先引导用户打开设置权限
			if (!res.authSetting['scope.writePhotosAlbum']) {
				/* 打开设置的方法 */
				uni.showModal({
					title: '提示',
					content: '请先在设置页面打开“保存相册”使用权限',
					confirmText: '去设置',
					cancelText: '取消',
					success: data => {
						if (data.confirm) {
							uni.openSetting()
						}
					}
				});
			} else {
				this.downloadImgOnPhone();
			}
		}
	});
},
// 开始下载图片
downloadImgOnPhone() {
	this.isLoading = true;
	// 下载文件,必须先调用downloadFile,不然会报错。
	uni.downloadFile({
		url: imgUrl, // 图片链接
		success: (res) => {
			if (res.statusCode === 200) {
			    // 保存下载的文件到相册
				uni.saveImageToPhotosAlbum({
					filePath: res.tempFilePath,
					success: () => {
						this.isLoading = false;
						uni.showToast({
							title: '下载成功',
							icon: "none",
							duration: 5000
						})
					},
					fail: (err) => {
						this.isLoading = false;
						uni.showToast({
							title: '下载失败',
							icon: "none",
							duration: 5000
						})
					},
				})
			}
		},
		fail: (err) => {
			this.isLoading = false;
			uni.showToast({
				title: JSON.stringify(err),
				icon: "none",
				duration: 5000
			})
		}
	});
}

查看微信小程序的设置信息,点击设置进去即可查看,uni.openSetting接口就是会打开这个设置页面:
uniapp下载和上传照片,微信小程序,VUE,前端,uni-app,notepad++
uni.authorize 申请授权,会触发底部弹窗:
uniapp下载和上传照片,微信小程序,VUE,前端,uni-app,notepad++
如果小程序被用户授权成功,在openSetting页面会显示“添加到相册”,如果用户手动关掉该选项,那么下次就不应该调用uni.authorize,而是调用uni.openSettin,引导用户开启开关。
uniapp下载和上传照片,微信小程序,VUE,前端,uni-app,notepad++
更多uniapp的开发文章可以关注博主,后续还会继续更新。
如果对于uview组件的开发效果感兴趣的童鞋,可以访问链接查看:https://ext.dcloud.net.cn/plugin?id=12603文章来源地址https://www.toymoban.com/news/detail-560064.html

到了这里,关于uniapp下载和上传照片的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • uniapp微信小程序实现大文件上传 分片上传 进度条

    一、安装   二、页面引入  三、实现功能(重要)         1.获取图片的路径         2.设置分片的大小         3.将数据放入 四、实现上传进度条 全部函数js 五、修改npm的源码,处理请求源码中请求所携带的参数问题,以及报错处理(重要) 修改npm后的源码。

    2024年02月03日
    浏览(49)
  • uniapp开发的微信小程序如何上传至微信小程序平台-完整简单步骤

    这个id请登录微信小程序号   设置中查看 成功上传。 message:Error: 系统错误,错误码:80051,source size 3743KB exceed max limit 2MB  如果这样报错可以尝试分包或者减至2M以内。 分包方法参考此博文 uniapp如何分包 分包配置后无法读取static文件夹_谨言不言的博客-CSDN博客_uniapp 分包

    2024年02月16日
    浏览(115)
  • uniApp、微信小程序上传单个文件及多个文件

    使用官方api - uni.uploadFile 这是单个文件上传写法 这是上传多个文件写法 由于没有多个上传文件的方法,目前只能通过遍历的方式来进行多文件上传

    2024年04月16日
    浏览(50)
  • uniapp微信小程序 选择聊天记录文件上传

    目录 精简版总结 示例 容易踩的坑 1、页面刷新问题 2、extension问题 单文件 多个文件 PS:files和filePath/name只能二选一组 此处用xlsx文件作实例,选择聊天记录中的xlsx文件上传到指定接口中。 因为某些微信版本extension可能不生效,或者又想要对提交的文件名做校验,建议参考我

    2024年02月09日
    浏览(92)
  • 微信小程序uniapp中的图片上传,压缩,预览,删除

    页面部分 1:图片上传 2:图片压缩 3:图片预览 4:图片删除

    2024年02月11日
    浏览(61)
  • 微信小程序:uniapp解决上传小程序体积过大的问题

    在昨天的工作中遇到了一个微信小程序上传代码过大的情况,在这里总结一下具体的解决步骤,首先介绍一下,技术栈是使用uniapp框架+HBuilderX的开发环境。 错误提示 真机调试,提示包提交过大,不能正常生成二维码,后续上传代码更是不可能了,减少包中的体积顺着这条思

    2024年02月03日
    浏览(58)
  • 微信小程序是如何上传文件以及下载文件

    微信小程序可以使用wx.uploadFile() API来上传文件,使用wx.downloadFile() API来下载文件。 上传文件的步骤如下: 1、创建一个选择文件的按钮。 2、用户点击按钮后,调用wx.chooseImage()方法来选择文件。 3、调用wx.uploadFile()方法上传文件。 示例代码如下: 下载文件的步骤如下: 1、创

    2024年02月11日
    浏览(48)
  • uniapp 上传静态资源-- 微信小程序跟QQ小程序上传静态资源到阿里的对象存储 OSS

    这两天有个需求,要微信小程序跟QQ小程序通过阿里的OSS储存,存放静态资源,遇到了挺多问题,记录一下~~~ 文档:此处 其实这个是被误导了,也怪自己没有仔细看文档,不该有这一步,但是做了就记录一下,正好多了解nodejs环境与浏览器环境 API的差别。 服务器直传里面的

    2024年02月09日
    浏览(44)
  • 微信小程序中pdf的上传、下载及excel导出

    上传两种方法: 1.用vant weapp组件: 参考:https://blog.csdn.net/weixin_38566069/article/details/110229404 提示:突然冒出一个报错:wx.chooseMessageFile点击很多次后就突然无效了 昨天上传功能在【微信开发工具和移动端】都可以用,早上突然实现了。 查了下是官方给出的解释是: 2023年9月

    2024年02月12日
    浏览(52)
  • uniApp移动端-H5-微信小程序上传文件(图片,文档和视频等)

    封装了一个插件可直接使用: 插件地址:uniApp移动端-H5-小程序上传文件(图片,文档和视频等),插件可直接用Hbuilderx导入示例项目查看, 实现方法: H5内部是使用uni-app官方内部方法uni.chooseFile 小程序端因hybrid不能使用本地HTML,所以插件提供的是uni-app官方内部方法wx.cho

    2024年02月12日
    浏览(55)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包