uni-app #插件需求# 替换为 uni-app uni.chooseImage 提供拍照不保存图片在本地的参数

uni-app #插件需求# 替换为 uni-app uni.chooseImage 提供拍照不保存图片在本地的参数

需求描述

能否提供一个参数让开发者选择拍照是否存储图片在手机里面
类似微信jssdk的参数----isSaveToAlbum: 0, // 整型值,0表示拍照时不保存到系统相册,1表示自动保存,默认值是1

客户这边有个需求是上传用户的身份证图片,为了防止用户资料泄露,用户拍完照片并上传图片的服务器后,手机不能保存用户的身份证照片信息

8 回复

能不能顶下

更多关于uni-app #插件需求# 替换为 uni-app uni.chooseImage 提供拍照不保存图片在本地的参数的实战教程也可以访问 https://www.itying.com/category-93-b0.html


顶一波,想知道怎么解决

uni.chooseImage你不主动调用save不会保存到手机,下次启动就没有图片了,建议多看看文档

设备名称:Lenovo Tab M10 FHD Plus 问题描述:使用 uni.chooseImage 调用相机拍照的图片 会被保存在系统相册中 期望结果:不会保存在系统相册中

平板重启都没用,可以在系统相册中看到图片

智密科技,专注于uniapp生态开发,拥有专职前端、安卓工程师、IOS工程师、硬件工程师、后端工程师、UI设计人员,提供Unaipp插件开发,app外包开发 可以按照你的要求定制插件,实现你的效果,为客户开发过多个相机、相册视频类插件 插件市场搜索智密也能找到我们的 相册 拍照 视频类的插件 联系微信 zhimitec

在uni-app中,uni.chooseImage API 用于从系统相册选择图片或使用相机拍照,但它默认会将选中的图片或拍摄的图片保存到本地。若你希望在拍照后不在本地保存图片,这实际上是一个比较特殊的需求,因为uni.chooseImage API 本身并不直接支持这一功能。不过,你可以通过一些变通的方法来实现这个需求。

以下是一个可能的解决方案,它利用了uni.createCameraContext API 来直接访问相机并获取图片数据,然后你可以选择不将图片保存到本地,而是直接进行其他处理(如上传到服务器或显示在界面上)。

// 页面脚本
Page({
  data: {
    cameraContext: null,
    photoData: ''
  },
  onLoad: function() {
    // 创建相机上下文
    this.setData({
      cameraContext: uni.createCameraContext()
    });
  },
  takePhoto: function() {
    const self = this;
    self.data.cameraContext.takePhoto({
      quality: 'high',
      success: function(res) {
        // 这里的res.tempImagePath是临时图片路径,但并未保存到相册
        // 你可以选择不处理这个路径,而直接处理res.data(base64图片数据)
        self.setData({
          photoData: res.data // 使用base64数据
          // 或者你可以将图片上传到服务器
          // uploadImage(res.data);
        });
      },
      fail: function(err) {
        console.error('拍照失败:', err);
      }
    });
  },
  // 示例:上传图片到服务器(可选)
  uploadImage: function(base64Data) {
    uni.uploadFile({
      url: 'https://your-server.com/upload', // 仅为示例,替换为你的上传接口
      filePath: '', // 不需要设置,因为我们使用base64数据
      name: 'file',
      formData: {
        user: 'test'
      },
      file: base64Data, // 直接传递base64数据,注意服务器需要支持base64解析
      success: function(uploadFileRes) {
        console.log('上传成功:', uploadFileRes);
      },
      fail: function(err) {
        console.error('上传失败:', err);
      }
    });
  }
});

请注意,直接传递base64数据到uni.uploadFilefile字段可能并不被所有服务器支持。如果服务器不支持base64上传,你可能需要将base64数据转换为Blob或File对象,或者先将base64数据转换为临时文件路径再上传。此外,处理大图片数据时,注意性能和内存管理。

以上代码示例展示了如何在uni-app中使用相机并获取图片数据而不保存到本地,你可以根据需要进行调整。

回到顶部