uni-app微信小程序——上传图片和图片预览

时间:2024-10-03 14:43:45

一、实现功能

1、上传一张或多张图片(最多四张)

2、图片可点击预览放大

3、点击图片右上角可删除图片

二、实现方式

使用colorUI组件库,在微信小程序的全局样式中引入colorUI组件库的通用样式表和

通用样式表下载地址/download/weixin_40677985/11541901

或者colorUI组件库的官网下载/(官网有具体的使用文档)

三、代码的实现

注意:我用的是uni-app框架写的微信小程序,用原生的朋友请自行修改写法。

1、html的代码

  1. <view class="cu-bar bg-white margin-top">
  2. <view class="action">
  3. 图片上传(选填)
  4. </view>
  5. <view class="action">
  6. {{imgList.length}}/4
  7. </view>
  8. </view>
  9. <view class="cu-form-group">
  10. <view class="grid col-4 grid-square flex-sub">
  11. <view class="bg-img" v-for="(item,index) in imgList" :key="index" @tap="ViewImage" :data-url="imgList[index]">
  12. <image :src="imgList[index]" mode="aspectFill"></image>
  13. <view class="cu-tag bg-red" @tap.stop="DelImg" :data-index="index">
  14. <text class='cuIcon-close'></text>
  15. </view>
  16. </view>
  17. <view class="solids" @tap="ChooseImage" v-if="<4">
  18. <text class='cuIcon-cameraadd'></text>
  19. </view>
  20. </view>
  21. </view>

2、js的代码

 

  1. <script>
  2. export default {
  3. data() {
  4. return {
  5. imgList: [],
  6. modalName: null,
  7. index:-1,
  8. }
  9. },
  10. methods: {
  11. //选择图片
  12. ChooseImage() {
  13. ({
  14. count: 4, //默认9
  15. sizeType: ['compressed'], //可以指定是原图还是压缩图,默认二者都有
  16. sourceType: ['album','camera'], //从相册选择
  17. success: (res) => {
  18. if (.length != 0) {
  19. = ()
  20. } else {
  21. =
  22. }
  23. }
  24. });
  25. },
  26. //预览图片
  27. ViewImage(e) {
  28. ({
  29. urls: ,
  30. current:
  31. });
  32. },
  33. //删除图片
  34. DelImg(e) {
  35. ({
  36. title: '删除照片',
  37. content: '确定要删除这张照片吗?',
  38. cancelText: '取消',
  39. confirmText: '确定',
  40. success: res => {
  41. if () {
  42. (.index, 1)
  43. }
  44. }
  45. })
  46. }
  47. }
  48. }
  49. </script>

四、实现的效果