uniapp小程序选择图片裁剪后上传

uniapp小程序选择图片裁剪后上传

微信api wx.cropImage

  1. 直接上代码
chooseImage() {
	var _this = this
	this.showHide = false
	uni.chooseImage({
		count: 1, //默认9
		sizeType: ['original', 'compressed'], //可以指定是原图还是压缩图,默认二者都有
		sourceType: ['album', 'camera'], //从相册选择、摄像头
		success: function(res) {
			// 判断图片大小
			if (res.tempFiles[0].size / 1024 / 1024 <= 10) {
				const tempFilePaths = res.tempFilePaths;
                 // 此方法 只能真机使用过
				wx.cropImage({
					src: tempFilePaths[0], // 图片路径
					cropScale: '1:1', // 裁剪比例
					success: (data) => {
						console.log(data.tempFilePath, 'KKKKKKK')
						uni.showLoading({
							title: '照片上传中...',
							mask: true
						})
						const uploadTask = uni.uploadFile({
							url: getApp().globalData.requestUrl + 'base/common/file/qiniu/upload', // 服务器上传接口地址
							filePath: data.tempFilePath,
							name: 'images', // 必须填写,后台用来接收文件
							success: (uploadFileRes) => {
								console.log(uploadFileRes, 'uploadFileRes')
								let data = JSON.parse(uploadFileRes.data)
								if (data.code == 1 && data.data && data.data[0]) {
									// 这是上传后的服务器地址
									_this.humanImg = data.data[0].maxImageUrl
									
								}
								setTimeout(() => {
									_this.showHide = true
									uni.hideLoading()
								}, 1000)
							},
							fail: (uploadFileErr) => {
								console.error('upload fail:', uploadFileErr);
								uni.hideLoading()
								                                                                                                                                                                                  .showHide = true
							}
						});
						// 监听上传进度变化
						uploadTask.onProgressUpdate((res) => {
							console.log('上传进度' + res.progress + '%');
						});
					},
					fail: (uploadFileErr) => {
						console.error('upload fail:', uploadFileErr);
					}
				})
			} else {
				uni.showToast('上传图片不可超过10M')
			}
		}
	});
}
  1. 完成!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值