返回
图解 Uniapp 小程序图片上传,轻松搞定实名认证和头像上传!
前端
2023-03-06 06:51:03
Uniapp 小程序图片上传指南:从头到尾的详细步骤
选择图片
选择图片是图片上传过程中的第一步。Uniapp 小程序提供了两种选择图片的方式:
- 原生
wx.chooseImage
API: 仅支持选择本地图片。 uni.chooseImage
API: 支持选择本地图片和拍照。
uni.chooseImage({
count: 1, // 默认 9
sizeType: ['original', 'compressed'], // 指定原图或压缩图,默认为两者都有
sourceType: ['album', 'camera'], // 指定来源为相册或相机,默认为两者都有
success: (res) => {
// tempFilePath 可作为图片标签的 src 属性显示图片
const tempFilePaths = res.tempFilePaths;
},
});
压缩图片
为了减少图片大小并加快上传速度,可以在上传之前对图片进行压缩。Uniapp 小程序提供了 uni.compressImage
API 来完成此操作。
uni.compressImage({
src: tempFilePath, // 图片路径
quality: 80, // 压缩质量,默认 90
success: (res) => {
// tempFilePath 可作为图片标签的 src 属性显示图片
const tempFilePath = res.tempFilePath;
},
});
上传图片
上传图片是将压缩后的图片发送到服务器的过程。Uniapp 小程序有两种上传图片的方法:
- 原生
wx.uploadFile
API: 仅支持上传到微信服务器。 uni.uploadFile
API: 支持上传到任意服务器。
uni.uploadFile({
url: 'https://example.com/upload', // 上传地址
filePath: tempFilePath, // 图片路径
name: 'file', // 文件名
formData: { // 其他参数
user: 'test',
},
success: (res) => {
// data 是上传图片的路径
const data = res.data;
},
});
总结
以上步骤介绍了如何在 Uniapp 小程序中实现图片上传。从选择图片到压缩和上传,每个步骤都至关重要。希望本指南对您的移动端开发需求有所帮助。
常见问题解答
-
如何选择多张图片?
uni.chooseImage({ count: 9, // 设置可选择图片的数量 });
-
如何自定义图片大小和质量?
uni.compressImage({ src: tempFilePath, quality: 60, // 设置压缩质量 size: [200, 200], // 设置压缩后的图片尺寸 });
-
如何上传到特定的服务器?
uni.uploadFile({ url: 'https://my-custom-server.com/upload', // 指定上传地址 });
-
如何获取上传进度?
uni.uploadFile({ filePath: tempFilePath, success: (res) => { const progress = res.progress; // 上传进度 }, });
-
如果上传失败,如何处理?
uni.uploadFile({ filePath: tempFilePath, fail: (err) => { // 处理上传失败 }, });