当前位置: 首页 > article >正文

uniapp在开发app时上传文件时的问题

手机拍照然后上传没问题 但是在相册中选择的照片上传 ios手机不行 安卓一部分手机也点击没反应
最后对比了下参数 发现路径有所不同
使用uni.saveFile保存路径好在重新上传

  saveFileSync(tempFilePath){
   return new Promise((resolve, reject) => {
     uni.saveFile({
       tempFilePath,
       success: function (file) {
         resolve(file.savedFilePath)
       },
       fail: function (error) {
         reject(error)
       }
     })
   })
 },
    uni.chooseImage({
        count: 1, //默认9
        sizeType: ["compressed"], //可以指定是原图还是压缩图,默认二者都
        sourceType: ['camera','album'], 
         success: async function(result) {
          let ewm = result.tempFiles[0]
          const path = await that.saveFileSync(ewm.path)
          if (result.errMsg === "chooseImage:ok") {
            result.tempFiles[0].path=path
            // that.upload(path);
            that.upload(result.tempFiles[0]);
          } else {
            uni.showToast({
              title: "图片上传失败",
              icon: "none",
            });
          }
        },
        fail(err) {
          uni.showToast({
            title: "取消上传",
            icon: "none",
          });
        },
      });
Upload(event) {
      const token = this.getToken();
      // const url = this.getuploadUrl();
      const imgList = [];
      uni.showLoading({
        title: "上传中...",
        mask: true,
      });
      try {
        const [err, res] = await uni.uploadFile({
          url: `${HOST}/resource/file/upload`,
          filePath: event.path,
          name: "file",
          header: {
            Authorization: token,
          },
        });
       
        if (res && (res.statusCode === 200)) {
          const result = JSON.parse(res.data);
          if (result.code == 200) {
            let res1 = JSON.parse(res.data);
              res1.data.uuid = res1.data.id;
              res1.data.paramskey = event.name;
              imgList.push(res1.data);
              const list = [...this.list, ...imgList];
              this.$emit("value", list);
              this.$emit("change", list);
              this.$emit("upload", imgList);
          } else {
            wx.showToast({
              icon: "none",
              title: result.msg,
            });
          }
        } else {
          wx.showToast({
            icon: "error",
            title: "上传失败",
          });
        }
      } catch (error) {
        console.log(error)
      }
      uni.hideLoading();
      this.$emit("upload", imgList);
    },
       

http://www.kler.cn/a/306446.html

相关文章:

  • DAY112代码审计PHP开发框架POP链利用Yii反序列化POP利用链
  • uniapp在app模式下组件传值
  • 1.两数之和-力扣(LeetCode)
  • 01:(手撸HAL+CubeMX)时钟篇
  • Linux基础1
  • Spring Boot 中的全局异常处理器
  • 配置RHEL和centOS的阿里云镜像源
  • Python--常见的数据格式转换
  • 安卓获取apk的公钥,用于申请app备案等
  • Windows 11上pip报‘TLS/SSL connection has been closed (EOF) (_ssl.c:1135)‘的解决方法
  • MySQL一:在Ubuntu下安装MySQL数据库
  • UAC2.0 麦克风——单通道 USB 麦克风
  • C++部分题目解析
  • 基于ssm+vue+uniapp的智能停车场管理系统小程序
  • Chrome 本地调试webrtc 获取IP是xxx.local
  • SQL进阶技巧:火车票相邻座位预定一起可能情况查询算法 ?
  • 喜报 | 知从科技荣获 “AutoSec 安全之星 - 优秀汽车软件供应链安全方案奖”
  • Qt:Q_GLOBAL_STATIC实现单例(附带单例使用和内存管理)
  • 有了数据中台,是否需要升级到数据飞轮?怎么做才能升级到数据飞轮?
  • 并行编程实战——TBB中的Task
  • C++的内存分布
  • FastAPI与环境变量:实现无缝切换与高效运维
  • Python操作MySQL
  • 常见生成模型有哪些?生成模型前后存在依赖关系,怎么处理更合适
  • 二分算法——优选算法
  • 排队免单模式小程序开发