溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

微信小程序如何實(shí)現(xiàn)上傳多張圖片、刪除圖片

發(fā)布時(shí)間:2020-06-28 17:31:18 來(lái)源:億速云 閱讀:510 作者:清晨 欄目:開(kāi)發(fā)技術(shù)

這篇文章將為大家詳細(xì)講解有關(guān)微信小程序如何實(shí)現(xiàn)上傳多張圖片、刪除圖片,小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。

效果圖:

微信小程序如何實(shí)現(xiàn)上傳多張圖片、刪除圖片

本來(lái)用的是小程序提供的 mp-uploader 上傳圖片的組件,無(wú)奈次組件刪除效果不是我想要的,只能用 wx.chooseImage進(jìn)行上傳圖片,在使用uplaodFile將圖片發(fā)送給后臺(tái)服務(wù)器。

下面直接展示代碼:

wxml:

<view class="con_titles">
 <view class="con_left">
  <image src="../../images/comint.png"></image>
  <text class="titles_t">患者病歷</text>
 </view>
 <view class="img_num">{{imgShow.length}}/6</view>
 
 </view>
 <view class="page__bd">
 <!-- <mp-uploader style='color:#353535' bindfail="uploadError" bindsuccess="uploadSuccess" select="{{selectFile}}" upload="{{uplaodFile}}" files="{{files}}" max-count="6" title="患者病歷"></mp-uploader> -->
 
 <view class="add-image">
  <view class="images-boxc" wx:for="{{imgShow}}" wx:for-item="item" wx:key="image">
  <image class="image_size" data-index="{{index}}" data-src="{{item}}" src="{{item}}" bindtap="clickImage"></image>
  <image class="delete-image" data-index="{{index}}" src="../../images/delete_img.png" bindtap="deleteImage"></image>
  </view>
  <view class="images-add" wx:if="{{imgShow.length<6}}">
  <image class="image_size image_sizen" src="../../images/add_img.png" bindtap="chooseImage"></image>
  </view>
 </view>
</view>

wxss:

/* 上傳圖片 */
.images-boxc {
 position: relative;
 border: dashed 1px #bfbfbf;
 width: 139rpx;
 height: 139rpx;
 margin-right: 32rpx;
 margin-bottom: 32rpx;
}
.delete-image {
 position: absolute;
 width: 30rpx;
 height: 30rpx;
 right: 16rpx;
 top: 16rpx;
}
.add-image {
 display: flex;
 flex-wrap: wrap;
}
.image_size {
 width: 139rpx;
 height: 139rpx;
}
.image_sizen {
 height: 142rpx;
}

js:

data: {
 count: 6, //設(shè)置最多6張圖片
 
 allImg: [],
 imgShow: [],
 
 },
// 上傳圖片
 chooseImage: function() {
 wx.showLoading({
  title: '加載中...',
  mask: true
 })
 var that = this;
 var imgShow = that.data.imgShow;
 var count = that.data.count - imgShow.length; //設(shè)置最多6張圖片
 wx.chooseImage({
  count: count,
  sizeType: ['compressed'], // 可以指定是原圖還是壓縮圖,默認(rèn)二者都有
  sourceType: ['album', 'camera'], // 可以指定來(lái)源是相冊(cè)還是相機(jī),默認(rèn)二者都有
  success: function(res) {
  console.log(res)
  that.uplaodFile(res)
  for (var i = 0, h = res.tempFilePaths.length; i < h; i++) {
   imgShow.push(res.tempFilePaths[i]);
   that.setData({
   imgShow: imgShow
   })
  }
  wx.hideLoading({
   title: '加載中...',
   mask: false
  })
 
  }
 })
 },
 // 刪除圖片
 deleteImage(e) {
 let self = this;
 let index = e.target.dataset.index;
 let imgShow = self.data.imgShow;
 let allImg = self.data.allImg;
 allImg.splice(index, 1);
 imgShow.splice(index, 1);
 this.setData({
  imgShow: imgShow,
  allImg: allImg
 })
 },
 previewImage: function(e) {
 console.log(this.data.files)
 wx.previewImage({
  current: e.currentTarget.id, // 當(dāng)前顯示圖片的http鏈接
  urls: this.data.files // 需要預(yù)覽的圖片http鏈接列表
 })
 },
 selectFile(files) {
 console.log('files', files)
 // 返回false可以阻止某次文件上傳
 },
 uplaodFile(files) {
 console.log('upload files', files)
 let that = this
 files.tempFilePaths.forEach(element => {
  util.uploadFile('/fastdfsServer/fileUpload', element, 'file', {}, function(res) { //上傳本地圖片地址到服務(wù)器 返回地址 存放到input提交時(shí)取值
  res = JSON.parse(res);
  if (res.responseCode == 0) {
   sysMsg.sysMsg("上傳成功", 1000, 'success');
   that.setData({
   allImg: that.data.allImg.concat(res.responseBody)
   });
  } else {
   sysMsg.sysMsg("上傳失敗", 1500, 'error');
  }
  });
 
 });
 // 文件上傳的函數(shù),返回一個(gè)promise
 return new Promise((resolve, reject) => {
  resolve({
  urls: files.tempFilePaths
  });
  setTimeout(() => {
  reject('some error')
  }, 10000)
 
 })
 
 },
 uploadError(e) {
 console.log('upload error', e.detail)
 },
 uploadSuccess(e) {
 // this.setData({
 // allImg: this.data.allImg.concat(e.detail.urls[0])
 // });
 console.log('upload success', e.detail, e.detail.urls)
 
},

關(guān)于微信小程序如何實(shí)現(xiàn)上傳多張圖片、刪除圖片就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI