收藏
回答

chooseMedia 选择照片能否去重?

wx.chooseMedia 选择相册图片显示时,存在重复照片显示,能否有方法可以去重?


回答关注问题邀请回答
收藏

4 个回答

  • 社区技术运营专员-Jahozheng
    社区技术运营专员-Jahozheng
    2023-06-26

    同一个照片可以选择两次?

    2023-06-26
    有用
    回复 3
    • haishun
      haishun
      发表于移动端
      2023-06-26
      选择一个照片在页面回显了,然后再选择同一张照片回显,页面显示两张同样照片,因为接口反回的数据唯一的无法区分
      2023-06-26
      回复
    • 大熊
      大熊
      2023-06-26回复haishun
      无法去重,  你一次性选就行, 一次性选, 同一个照片选不了两次
      2023-06-26
      回复
    • haishun
      haishun
      发表于移动端
      2023-06-26回复大熊
      我也知道这样,可是人家要求不能显示同样的照片,唉。。。
      2023-06-26
      回复
  • 那一抹笑😃 穿透阳光
    那一抹笑😃 穿透阳光
    2023-06-26

    选择的时候,没办法,只有选择之后,你自己在代码中处理

    2023-06-26
    有用 1
    回复 1
    • haishun
      haishun
      发表于移动端
      2023-06-26
      选择后是根据反回的地址回显的,地址都不一样,该怎么判断是相同的照片呢
      2023-06-26
      回复
  • Hillswind
    Hillswind
    07-21

    对于同一个文件,第二次选取时获取的临时路径 tempFilePath 是否保持不变?

    如果保持不变的话,可以用 tempFilePath 做图片的唯一标识。

    如果会变化的话,需要自行计算文件的 md5 值做唯一标识,再根据 md5 去重。

    md5 获取方法: getFileInfo https://developers.weixin.qq.com/miniprogram/dev/api/file/FileSystemManager.getFileInfo.html

    07-21
    有用
    回复
  • 正青春
    正青春
    2023-06-26
    是不是赋值问题,data里,给一个
    data: {
        picList: [],
      },
     // 拍照,你可以选择相册
      chooseimagefunction () {//选择图片
        var self = this;
        wx.chooseMedia({
          count1,
          mediaType: ['image'],
          sourceType: ['camera'],
          camera'back',
          successfunction (res{
            self.uploadImage(res.tempFiles[0].tempFilePath, 0, self);
          }
        })
      },
     uploadImagefunction (uploadingImage, i, self)//上传照片
      {
        var images = self.data.picList;
        var uploadImgPath = uploadingImage;
        var imgObj = new Object();
        imgObj.filePath = "/images/icon_uploading.png";
        images.push(imgObj);
        self.setData({
          picList: images
        });
        //上传照片
        wx.uploadFile({
          url: 自己的请求路径,
          filePath: uploadImgPath,
          name"file",
          header: {
            "Content-Type""multipart/form-data"
          },
          successfunction (res{
            var resImg = res.data;
            var imgObj = images[images.length - 1];
            imgObj.filePath = uploadImgPath;
            imgObj.imgUrl = resImg;
            self.setData({
              picList: images
            });
            console.log("image=" + images[0].imgUrl);
            console.log("picList长度:" + images.length);
    
    
          }
        })
      },
    
    <view class="picList">
              <view wx:for="{{picList}}" wx:key='index' wx:for-index="idx" data-idx="{{idx}}" class="picView">
                <image class="pic" mode="aspectFill" src="{{item.filePath}}"></image>
              </view>
            </view>
    
    2023-06-26
    有用
    回复 4
    • haishun
      haishun
      发表于移动端
      2023-06-26
      现在还没到用接口上传这一步,只是选择照片后显示在界面上,选择照片后api反回的路径都是唯一了,没办法用反回的数据进行区分,不知道有没有其他方法
      2023-06-26
      回复
    • 正青春
      正青春
      2023-06-26回复haishun
      记录一下日志,打印出来picList的数据,可以去分开的
      2023-06-26
      回复
    • haishun
      haishun
      发表于移动端
      2023-06-26回复正青春
      piclist里面的数据就是图片地址,都不一样,怎么知道哪些图片是一样的
      2023-06-26
      回复
    • 正青春
      正青春
      2023-06-26回复haishun
      地址是不一样,单独拿出来地址看图片是否一样;首先确认选择不是同一个图片,然后对比地址看图片是否一样
      2023-06-26
      回复
登录 后发表内容