logo

Uniapp实现图片上传

作者:da吃一鲸8862024.01.17 13:31浏览量:157

简介:介绍如何在Uniapp中实现图片上传功能,包括选择图片、压缩图片、上传图片等步骤。

在Uniapp中实现图片上传功能,需要使用uni.chooseImage()选择图片,使用plus.zip.compressImage()进行图片压缩,使用uni.uploadFile()将本地资源上传到服务器。下面详细介绍这些步骤:

  1. 选择图片
    使用uni.chooseImage()方法选择图片,该方法会打开相册或相机让用户选择图片。选择完成后,可以在成功的回调中给this.imgBg赋值,用于后续的图片压缩和上传。
    1. uni.chooseImage({
    2. count: 1, // 默认9
    3. sizeType: ['original', 'compressed'], // 可以指定是原图还是压缩图,默认二者都有
    4. sourceType: ['camera'], // 可以指定来源是相册还是相机,默认二者都有
    5. success: function (res) {
    6. // 返回选定照片的本地文件路径列表,tempFilePath可以作为img标签的src属性显示图片
    7. this.imgBg = res.tempFilePaths[0];
    8. }
    9. });
  2. 图片压缩
    使用plus.zip.compressImage()方法对选择的图片进行压缩。可以将压缩后的图片给that.imgBgArr赋值,用于后续的图片上传。
    1. plus.zip.compressImage({
    2. src: this.imgBg, // 图片路径
    3. quality: 100, // 压缩质量,范围0-100,默认100
    4. success: function (compressRes) {
    5. // 压缩成功后的图片路径列表数组,可以用于上传或预览等操作
    6. that.imgBgArr = compressRes.files;
    7. }
    8. });
  3. 上传图片
    使用uni.uploadFile()方法将本地资源上传到服务器。在成功的回调中,后端会解析拿到的图片资源并返回一个临时路径和绝对路径,可以给this.imgBgUrl和imgBgArrUrl赋值。最后在提交表单时,将临时路径和绝对路径加到表单接口参数中一起调用接口上传。
    1. uni.uploadFile({
    2. url: 'http://example.com/upload', // 服务器地址
    3. filePath: that.imgBgArr[0], // 文件路径
    4. name: 'file', // 文件上传的key,对应请求的param的key,不包含在url后面
    5. success: function (uploadFileRes) {
    6. // 返回文件上传的临时路径和绝对路径信息,可以用于后续请求临时路径进行预览等操作
    7. this.imgBgUrl = uploadFileRes.tempFilePath;
    8. imgBgArrUrl = uploadFileRes.filePath;
    9. }
    10. });
  4. 其他功能函数
    除了上述的基本功能外,还可以添加其他功能函数,比如图片删除(直接给图片赋空字符串)和图片预览(调用uni.previewImage(OBJECT)方法)等。这些功能可以根据实际需求进行添加和完善。

相关文章推荐

发表评论