首页 > 编程语言 >微信小程序的附件上传与预览

微信小程序的附件上传与预览

时间:2023-10-08 10:13:39浏览次数:121  
标签:console log 预览 微信 success sj res 上传 wx

微信小程序的附件上传与预览

文件与图片上传

    wx.chooseMessageFile({
      count: 10,
      type: 'file',
      success(res) {
        // tempFilePath可以作为img标签的src属性显示图
        const tempFilePaths = res.tempFiles;
        var wjpath = tempFilePaths[0].path;
        var fname = tempFilePaths[0].name;
        var hz = tempFilePaths[0].type;

        console.log(wjpath, fid, fromid, "tempFilePaths");
        wx.getFileSystemManager().readFile({
          filePath: wjpath,
          encoding: 'base64',
          success: res => {
            console.log(res.data, "wjbase64");
            request({
              url: "上传的url",
              method: "POST",
              data: {
                FileName: fname,
                FormId: fromid,
                FId: fid,
                BillNO: bno,
                AliasFileName: hz,
                SendByte: res.data
              }
            }).then(res => {
              let resdata = JSON.parse(res);
              console.log(resdata, "resdata");
              if (resdata.Result.ResponseStatus.IsSuccess) {
                wx.showToast({
                  title: '上传成功',
                  icon: 'success',
                  duration: 200
                })
                this.Lookfilelist(this.data.fid);
              } else {
                wx.showModal({
                  title: '提示',
                  content: "上传失败" + resdata.Result.ResponseStatus.Errors[0].Message,
                  success: function (res) {
                    if (res.confirm) {
                      console.log('用户点击确定')
                    } else if (res.cancel) {
                      console.log('用户点击取消')
                    }
                  }
                })
              }
            
            })
          }
        })
      }
    })

 

图库上传

    wx.chooseMedia({
      count: 1,
      mediaType: ['image', 'video'],
      sourceType: ['album', 'camera'],
      maxDuration: 30,
      camera: 'back',
      success: res => {
        console.log(res);
        var imagepath = res.tempFiles[0].tempFilePath;
        var imagetype = res.tempFiles[0].fileType;
        console.log(imagepath, imagetype, "---");
        wx.getFileSystemManager().readFile({
          filePath: imagepath, //选择图片返回的相对路径
          encoding: 'base64', //编码格式
          success: (res) => {
            wx.showLoading({
              title: "上传中",
              mask: true
            });
            let baseImg = res.data;
            console.log(baseImg, "baseImg");
            request({
              url: "上传的url",
              method: "POST",
              data: {
                FileName: "图库图片.jpg",
                FormId: fromid,
                FId: fid,
                BillNO: bno,
                AliasFileName: "jpg",
                SendByte: baseImg
              }
            }).then(res => {
              let resdata = JSON.parse(res);
              console.log(resdata, "resdata");
              if (resdata.Result.ResponseStatus.IsSuccess) {
                wx.showToast({
                  title: '上传成功',
                  icon: 'success',
                  duration: 2000
                })
                this.Lookfilelist(this.data.fid);
              } else {
                wx.showModal({
                  title: '提示',
                  content: "上传失败" + resdata.Result.ResponseStatus.Errors[0].Message,
                  success: function (res) {
                    if (res.confirm) {
                      console.log('用户点击确定')
                    } else if (res.cancel) {
                      console.log('用户点击取消')
                    }
                  }
                })
              }
            })
            wx.hideLoading();
         
          }
        })
      }
    })

 

预览,--调用api返回base64格式保存到临时路径在预览

    request({
      url: "调用api" ,
      method: "POST",
    }).then(res => {

      let redata = JSON.parse(res);
      var fjnaeme = redata.Result.FileName;
      // 假设base64ImageData是你的base64格式图片数据
      var base64ImageData = redata.Result.FilePart;
      console.log(redata, "base64ImageData");
      const base64 = base64ImageData;
      const time = new Date().getTime();
      const path = wx.env.USER_DATA_PATH + "/" + fjnaeme;
      const file = wx.getFileSystemManager();
      file.writeFileSync(path, base64, "base64");
      console.log(path, "path");
      var sj = fjnaeme.substring(fjnaeme.indexOf(".") + 1, fjnaeme.length);
      var mc = fjnaeme.substring(fjnaeme.indexOf("."), 0);
      console.log(sj, "sj", mc);
      if (sj == "doc" || sj == "docx" || sj == "xls" || sj == "xlsx" || sj == "ppt" || sj == "pptx" || sj == "pdf") {
        this.openFile(path, sj);、、文件预览方法
      } else {
        this.openimage(path);//图片预览方法
      }



    })

 

  openFile(filePath, fileType) {
    wx.openDocument({
      filePath: filePath, // 装载对应文件的路径
      fileType: fileType, // 指定打开的文件类型
      showMenu: true, // 右上角的菜单转发分享操作
      success: function (res) {
        console.log("打开成功");
      },
      fail: function (res) {
        console.log(res);
        wx.showToast({
          type: 'error',
          title: '该格式不支持浏览',
          icon: 'fail',
          duration: 2000
        })
      }
    })
  },
  openimage(filePath) {
    wx.previewImage({
      current: 1,
      urls: [
        filePath
      ], //imgUrl 必须是需要预览的图片链接列表,只有一张图片也需要是列表
      success: (res => {
        console.log('接口调用成功', res)
      }),
      fail: function (res) {
        console.log(res);
        wx.showToast({
          type: 'error',
          title: '该格式不支持浏览',
          icon: 'fail',
          duration: 2000
        })
      }
    })
  },

 

标签:console,log,预览,微信,success,sj,res,上传,wx
From: https://www.cnblogs.com/mvpbest/p/17748213.html

相关文章

  • 微信小程序备案流程
     2.添加主体信息3.小程序信息         这样就结束了等腾讯电话就行,有修改的他会告诉你4.管局验证(工信部)管局审核通过后。工信部会发短信给你,注意要24小时内核验完成,法人和管理员都会收到短信都要验证管局地址传送门:https://beian.miit.gov.cn/......
  • 大文件上传和下载解决方案
    前言前端处理“大”一直是一个痛点和难点,比如大文件、大数据量。虽然浏览器硬件有限,但是聪明的工程师总是能够最大化利用浏览器的能力和特性,优雅的解决一个个极端问题,满足用户的多样化需求。断点上传对于大文件,如果我们直接上传,用户网速够慢的话,可能需要等上几天几夜才能上传完......
  • java实现 微信公众号推送消息 ,cv 就可运行!!!
    一,注册公众号1,官网地址:申请测试公众号地址:微信公众平台(qq.com)文档地址:微信开放文档(qq.com)2,注册后可以查看自己的appId和appsecret3,创建模板请注意:1、测试模板的模板ID仅用于测试,不能用来给正式帐号发送模板消息2、为方便测试,测试模板可任意指定内容,但实际上正......
  • 如何实现大文件上传
    一、解决方案既然大文件上传不适合一次性上传,那么将文件分片散上传是不是就能减少性能消耗了。分片上传就是将大文件分成一个个小文件(切片),将切片进行上传,等到后端接收到所有切片,再将切片合并成大文件。通过将大文件拆分成多个小文件进行上传,确实就是解决了大文件上传的问题。因为......
  • 第一次git上传的完整流程
    第一次git上传的完整流程使用git简单命令上传代码push到远程仓库+简单介绍了一个.git文件结构。代码上传到gitee和github流程一样的,不过你上传到github可能网不行失败,所以我们使用gitee*前置说明你必须有git工具并且配置了环境变量。配置环境变量使用git会更方便。测......
  • Salesforce input 标签 成熟文件上传方案,
    这次项目开发由于客户要求无法使用lwc标准的文件上传标签只能只能使用input标签来上传文件。下面是试验成功的方案。注意:只能上传3mb文件,salesforce限制。也希望看到的文章大神们指点一下。前端html<inputautocomplete="off"style="padding:0;......
  • 点击获取微信昵称、头像
    <buttonclass="avatar-wrapper"open-type="chooseAvatar"@chooseavatar="onChooseAvatar"> <imageclass="avatar":src="avatarUrl"></image> </button> <inputtype="nickname&......
  • 视频直播源码,js判断上传图片格式类型、尺寸大小
    视频直播源码,js判断上传图片格式类型、尺寸大小 /判断图片类型varf=document.getElementById("File1").value;if(f==""){ alert("请上传图片");returnfalse;}else{if(!/\.(gif|jpg|jpeg|png|GIF|JPG|PNG)$/.test(f)){alert("图片类型必须是.gif,jpeg,jpg,png中的一种")ret......
  • SpringMVC 文件上传
    SpringMVC文件上传<!--支持文件上传--><beanid="multipartResolver"class="org.springframework.web.multipart.commons.CommonsMultipartResolver"><!--maxUploadSizePerFile:单个文件大小限制maxUploadSize:整个请求大小限制--><propert......
  • 基于Java+SpringBoot+Vue的微信小程序实现民族节日及民间故事推广系统
    一、前言......