1. 概述
小程序多图上传是小程序中非常常见的功能,类似于社交类应用的朋友圈、陌陌中的多图上传。在小程序中实现该功能需要用到小程序的API,同时还需要对图片进行处理。下面详细介绍小程序如何实现多图上传功能。
2. 实现步骤
2.1 获取图片
在小程序中实现多图上传前,首先需要让用户选择需要上传的图片。可以通过小程序的chooseImage()
API实现。该API会打开用户的相册,让用户选择需要上传的图片。
wx.chooseImage({
count: 9, // 最多可以选择的图片张数
sizeType: ['original', 'compressed'], // 可以指定是原图还是压缩图,默认二者都有
sourceType: ['album', 'camera'], // 可以指定来源是相册还是相机,默认二者都有
success: function (res) {
// 返回选定照片的本地文件路径列表,tempFilePath可以作为img标签的src属性显示图片
var tempFilePaths = res.tempFilePaths;
}
})
2.2 图片上传
选择完图片后,就可以将选择的图片上传到服务器上,且可以选择将图片压缩后再上传,从而减少图片的大小。可使用wx.compressImage()
API对图片进行压缩。
wx.compressImage({
src: '', // 图片路径,如tempFilePaths中的某一个
quality: 80, // 压缩质量,取值范围为1-100
success: function (res) {
var compressedFilePath = res.tempFilePath; // 压缩后的图片路径,用于图片上传
}
})
接下来,使用wx.uploadFile()
API将图片上传到服务器上。该API是一个http请求,具体使用方法请参考API文档。
2.3 上传进度展示
在上传图片的过程中,用户界面需要展示上传进度,以便用户了解上传进度。可以使用wx.uploadFile()
API的回调函数中获取上传进度,并将进度展示给用户。
wx.uploadFile({
url: '', // 上传图片的地址
filePath: '', // 要上传的图片路径
name: '', // 文件对应的 key , 开发者在服务器端通过这个 key 可以获取到文件二进制内容
formData: {}, // HTTP 请求中其他额外的参数
success: function (res) {
// 上传成功的回调函数
},
fail: function (res) {
// 上传失败的回调函数
},
complete: function (res) {
// 上传完毕的回调函数
},
progress: function (res) {
// 上传进度展示
var progress = res.progress; // 上传进度
}
})
3. 总结
使用小程序API可以轻松实现小程序多图上传功能。在实现该功能时,需要注意选择图片、上传图片和上传进度展示等各个环节。如果您还有其它疑问,可以查看API文档,或咨询小程序官方客服。希望本文对小程序开发者有所帮助。