微信小程序上传pdf文件

1,898 阅读1分钟

上传文件

HTML

 <view class="accessory" bindtap="chooseFiletap"  data-index="{{index}}" data-status="1">添加附件</view>

JS

选择PDF的方法

wx.chooseMessageFile 调用调用手机上的文件,判断文件的类型,需求上传PDF的文件

 //上传pnf文件
    chooseFiletap(e) {
      let { index, status } = e.currentTarget.dataset;
      let that = this;
      wx.chooseMessageFile({
        count: 10,
        type: 'file',
        success(res) {
          // tempFilePath可以作为img标签的src属性显示图片
          const tempFilePaths = res.tempFiles;
          let fileName = tempFilePaths[0].name;
          let fileNameIndex = fileName.lastIndexOf('.');
          let file = fileName.substring(fileNameIndex)
          if(file != '.pdf') {
            wx.showToast({
              icon: 'error',
              duration: 1500,
              title: '请上传pdf格式的文件'
            });
            return;
              
          }else {
          that.getUploadFile(tempFilePaths[0], index, status)

          }
          
        }
      })

    },

调用服务器

    async getUploadFile(file, index, status) {
      let that = this;
      let data = {
        token: '',
        img: file.path
      }
      const res = await uploadrequest({ url: '/upload', data });
      let result = JSON.parse(res)
      let fileList = []
      if (result.code === 200) {
        wx.showToast({
          title: '上传成功',
          icon: 'success',
          image: '',
          duration: 1500,
          mask: true,
          success: (result) => {

          },
          fail: () => { },
          complete: () => { }
        });
        fileList.push({
          file_url: result.data.url,
          file_name: file.name
        })
      } else {
        wx.showToast({
          title: '上传失败',
          icon: 'none',
          image: '',
          duration: 1500,
          mask: false,
          success: (result) => {

          },
          fail: () => { },
          complete: () => { }
        });
      }
    },

删除文件

//删除文件
    handleclearfile(e) {
      let { index, status } = e.currentTarget.dataset;
      let { report, medicalRecord } = this.data;
      if (status == 1) {
        medicalRecord[index].pdf_file_url.splice(e.detail, 1)
      } else {
        report[index].pdf_file_url.splice(e.detail, 1)

      }
      this.setData({
        medicalRecord,
        report
      })
      let params = {
        medicalRecord: this.data.medicalRecord,
        report: this.data.report
      }
      //调用父组件的方法
      this.triggerEvent("addPhoto", params)
    },