使用uni.chooseImage实现手机相册上传

该博客介绍了如何在uni-app中使用uni.chooseImage从手机相册选取图片并将其链接存储到数据库,然后在前端展示。同时,讲解了点击图片删除按钮时如何删除数据库中的图片链接,并实现实时页面更新。涉及到的关键技术包括uni-app的API调用、图片显示和删除操作以及前后端交互。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

主要使用uni.chooseImage调取手机相册里的图片,把图片链接更新到数据库,再把数据库图片链接,显示到前端页面,点击图片删除按钮,删除数据库图片。

 

 html代码

<view class="item_w row_bw" style="margin-bottom: 10rpx" >

          <view class="name flex_align">

            <text>添加收钱码</text>

          </view>

  <view v-if="!moneyQ">//如果没有值就显示田字格--图片是自己找的

   <image src="../../static/addpage/upload.png" @click="img" style="width: 100rpx; height: 100rpx;"></image>

  </view>

  <view class="pagepic" v-else>//否则的话显示上传的图片

  <image  :src="moneyQ" @click="img" style="width: 100rpx; height: 100rpx;"></image>

  <view  @click="closepicc">x</view>

  </view>

        </view>

data

moneyQ:’’,//上传数据库里面的图片

mthods:

async getmember(){//获取接口

let res=await this.$api.http("接口");

this.moneyQ=res.money_qrcode;

this.res=res;

},

img(){

var _this=this

uni.chooseImage({

// count:  允许上传的照片数量

count:1,

sourceType: ['album'],//通过手机相册上传

async success(res){

   var money_qrcode=res.tempFilePaths[0];//res.tempFilePaths[0];里面是图片地址

      var params={

       userinfo:{

       money_qrcode

       }

   };

   await _this.$api.http("接口",params,"POST",{//对数据库进行更改

    "content-type":"application/json",

   });

   _this.getUserInfo();

   _this.getmember();//调取接口,使页面实时更新

}

});

},

 // 点击收钱码删除按钮,删除图片

 async closepicc(){

 var _this=this;

 var money_qrcode='';

    var params={

     userinfo:{

     money_qrcode

     }

 };

 await _this.$api.http("接口",params,"POST",{

  "content-type":"application/json",

 });

 _this.getUserInfo();

 _this.getmember();//调取接口,使页面实时更新

 },

使用 Vue 或 UniApp 开发应用时,可以利用 uni-app 的 API uni.chooseImageuni.uploadFile 来实现图片的上传和更换。下面是具体的实现步骤和代码示例: 1. 使用 uni.chooseImage 选择图片: 该方法可以弹出图片选择器,用户可以选择本地相册中的图片,或者使用相机拍摄新图片。选择图片后,会返回图片的本地文件路径。 ```javascript uni.chooseImage({ count: 1, // 默认选择1张图片 sizeType: ['compressed'], // 可以指定选择大图还是小图 sourceType: ['album', 'camera'], // 可以选择相册或相机 success: (res) => { // 处理用户选择的图片 const tempFilePaths = res.tempFilePaths; // 将图片路径保存,以便上传 this.selectedImage = tempFilePaths[0]; }, fail: (err) => { // 处理错误情况 console.error(err); } }); ``` 2. 使用 uni.uploadFile 上传图片: 得到图片的本地文件路径后,使用 uni.uploadFile 方法将图片上传到服务器。该方法会返回一个上传任务 ID,可以通过这个 ID 监听上传进度和上传成功后的状态。 ```javascript uni.uploadFile({ url: '服务器上传接口', // 上传图片到服务器的接口地址 filePath: this.selectedImage, // 本地图片路径 name: 'file', // 上传时的文件名 success: (uploadRes) => { // 上传成功的回调函数 const data = JSON.parse(uploadRes.data); // 处理返回的数据,比如更新UI显示上传成功的图片等 console.log('上传结果', data); }, fail: (err) => { // 上传失败的回调函数 console.error('上传失败', err); } }); ``` 请注意,上传图片到服务器通常需要处理跨域问题,确保服务器端设置允许来自客户端的请求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值