收藏
回答

小程序wx.uploadFile上传视频报错

框架类型 问题类型 API/组件名称 终端类型 微信版本 基础库版本
小程序 Bug wx.uploadFile 工具 8.0.1 2.17.0

小程序wx.uploadFile上传视频报错:

开发工具上传时,报错如下:

真机调试中,报错如下:


安卓版本号:Android10;

手机:小米8


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

2 个回答

  • warm
    warm
    2021-06-12
    //读取文件
      afterRead(e) {
        console.log(e.detail);
        const file = e.detail.file; 
        const index = file.url.lastIndexOf('.');
        const type = file.url.substring(index + 1, file.url.length);
        const flag = type == 'mp4'||type == 'mp3';
        if(!flag){
          app.showToast('文件格式只支持mp4、mp3''none');
          return false;
        }
    
    
        this.setData({
          file: file,
          isNoFilefalse
        });
    
    
        this.uploadCloudFile(file.url);
      },
    
    
      //上传文件接口
      uploadCloudFile(filePath){
        console.log(filePath)
        app.api.uploadCloudFile(filePath).then((res)=>{
          console.log('上传成功',res);
        }).catch((err)=>{
          console.log('上传失败',err);
        });
      },
     <van-uploader max-size="{{200*1024*1024}}" bind:oversize="oversize" bind:after-read="afterRead"  accept="video">
              <van-button type="info" size="small">上传视频文件</van-button>
              <view class="upload-tip">格式:mp4</view>
              <view class="err-tip" wx:if="{{isNoFile}}">请上传音视频文件</view>
            </van-uploader>
      
    //api
     uploadCloudFile(filePath) {
        return http.upload({
          url'/attacheFile/uploadFile',
          filePath: filePath,
          name'file'
        });
      },
    
    //http
    upload({
        url,
        filePath,
        name,
        formData = {}
      }) {
        return new Promise((resolve, reject) => {
          wx.uploadFile({
            url: url,
            filePath: filePath,
            name: name,
            formData: formData,
            success(res) {
              let data = JSON.parse(res.data);
              if (data.status != 0) {
                reject(data.message)
              } else {
                resolve(data.data)
              }
            },
            fail(error) => {
              reject(error)
            }
          })
        });
      }
            
    
    2021-06-12
    有用
    回复
  • Mr.Zhao
    Mr.Zhao
    2021-06-12

    这个url参数没看懂,又封装了?



    这么写能不报错吗,还以为你说的是bug呢


    2021-06-12
    有用
    回复 12
    • warm
      warm
      2021-06-12
      url你看不懂?封装的传参啊
      2021-06-12
      回复
    • Mr.Zhao
      Mr.Zhao
      2021-06-12回复warm
      没看到在哪拼接https, 可能我能力不够,或者我眼瞎
      2021-06-12
      回复
    • warm
      warm
      2021-06-12回复warm
      而且我这边不是用的wx.chooseImage这个api,用的是wx.chooseVideo,可明白了?
      2021-06-12
      回复
    • Mr.Zhao
      Mr.Zhao
      2021-06-12回复warm
      就说wx.uploadFile   我没看到你在哪拼接https,可明白?
      2021-06-12
      回复
    • Mr.Zhao
      Mr.Zhao
      2021-06-12回复warm
      在哪拼接的https呢?可明白了?
      2021-06-12
      回复
    查看更多(7)
登录 后发表内容