uniapp 上传图片 + 预览图片 + 删除图片

图片是用的阿里巴巴矢量图。
在这入图片描述

<template>
// html部分
   <view class="goods-box">
      <view class="imgList" v-for="(item, key) in fileList" :key="key">
         <image class="del" src="/static/image/delete.png" @click="delImage(key)"></image>
         <image class="imgList" :src="item" @click="previewImg(fileList,key)"></image>
      </view>
           // 这个v-if可以自己适度看自己情况增加或减少
         <image class="imgList" src="/static/image/upload.png" @click="addImage" v-if="fileList.length < 6"></image>
    </view>
</template>
// js部分
<script>
export default {
    data() {
      return {
         fileList: [], // 存储图片的数组,
         urlStr: "" //  后端返回的图片数据拼接
      }
    },
    methods: {
        // 预览图片功能
      previewImg(urls, i) {
        // console.log(urls);
        uni.previewImage({
          urls, //所有要预览的图片的地址集合 必须数组形式 
          current: urls[i] //当前图片地址,点击预览哪个预览的哪个传的 i 是索引
        })
      },
      // 新增图片 
      addImage() {
        const max = 6;
        const count = max - this.fileList.length
        uni.chooseImage({
          count: count,  // 上传图片最多6个可以自己调
          success: (res) => {
            this.fileList = [...this.fileList, ...res.tempFilePaths]
          }
        })
      },

       // 删除图片
      delImage(id) {
        this.fileList.splice(id, 1)
      },


      //  如果需要上传后台 仅供参考
     async upload() {
        for (let i = 0; i < this.fileList.length; i++) {
          let item = this.fileList[i];
          await this.requestMessage(item);
        }
        然后这点上传  接口 传给后端 处理后图片的值
        上传接口()
        
      }
       // 处理图片 如果需要上传后台 仅供参考
      requestMessage(item) {
        return new Promise((resolve, reject) => {
          uni.uploadFile({
            url: "你们后端接口",
            filePath: item,
            name: 'file',
            success: (res) => {
              let data = JSON.parse(res.data)
              // console.log(data);
              this.urlStr = this.urlStr += data.data.fullurl + ','
              // 后端要求上传图片  https://图片 , https:// 图片,https: // 图片 
              resolve(); // 返回处理后数据
            }
          })
        })
      },
      
    }
}
</script>

<style lang="scss">
.goods-box {
    display: flex;
    flex-wrap: wrap;

    // 图片列表
    .imgList {
      position: relative;
      width: 180rpx;
      height: 180rpx;
      margin: 0 50rpx 30rpx 0;
    }

    // 删除图片
    .del {
      position: absolute;
      width: 60rpx;
      height: 60rpx;
      right: 15rpx;
      z-index: 999;
    }
  }
</style>
  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
uniapp是一种基于Vue.js的跨平台开发框架,可以用于开发iOS、Android和Web应用程序。它提供了丰富的组件和API,使开发者能够轻松地构建功能强大的应用程序。 要在uniapp中实现录音、上传和与Java后端交互的功能,可以按照以下步骤进行操作: 1. 引入uni组件和uView组件:根据引用中提到的uni组件和uView组件,确保已经在uniapp项目中引入了这些组件。 2. 授权录音:使用uniapp提供的API进行录音授权。可以使用uni.request()方法向后端发送请求,获取录音授权。 3. 录制音频:使用uniapp提供的API进行录音操作。可以使用uni.startRecord()方法开始录音,使用uni.stopRecord()方法停止录音。 4. 保存录音文件:将录制的音频文件保存到本地或者上传到服务器。可以使用uni.saveFile()方法将录音文件保存到本地,使用uni.uploadFile()方法将录音文件上传到服务器。 5. 与Java后端交互:使用uniapp提供的API与Java后端进行数据交互。可以使用uni.request()方法发送请求,与后端进行数据传输。 以下是一个示例代码,演示了uniapp中录音、上传和与Java后端交互的过程: ```javascript // 授权录音 uni.authorize({ scope: 'scope.record', success() { // 录制音频 uni.startRecord({ success(res) { // 保存录音文件 uni.saveFile({ tempFilePath: res.tempFilePath, success(saveRes) { // 上传录音文件到服务器 uni.uploadFile({ url: 'http://your-java-backend.com/upload', filePath: saveRes.savedFilePath, name: 'file', success(uploadRes) { console.log('上传成功', uploadRes.data); }, fail(uploadErr) { console.log('上传失败', uploadErr); } }); }, fail(saveErr) { console.log('保存录音文件失败', saveErr); } }); }, fail(res) { console.log('录音失败', res); } }); }, fail() { console.log('录音授权失败'); } }); ``` 请注意,以上代码仅为示例,具体实现可能需要根据实际情况进行调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值