收藏
回答

ios本地视频wx.uploadFile上传

问题模块 框架类型 问题类型 API/组件名称 终端类型 操作系统 微信版本 基础库版本
API和组件 小程序 Bug wx.uploadFile 客户端 iOS 6.6.7 2.2.2

ios 选择本地视频上传的时候服务器端无法获得数据。但是header里面的值却可以获取。

ios 拍摄的视频上传却可以正常的上传

安卓手机的可以正常的使用。

最后一次编辑于  2018-08-16  (未经腾讯允许,不得转载)
回答关注问题邀请回答
收藏

3 个回答

  • Link
    Link
    2018-08-28

    麻烦确认几个问题

    1. 线上最新版本 6.7.2 是否还存在这个 bug

    2. 选择本地视频的时候,是否 100% 出现

    3. 重新拍摄一段视频,再调用接口选择这段视频,是否还能重现

    4. 出现 bug 时,服务端收到的异常请求 payload 是什么

    2018-08-28
    赞同
    回复 5
    • 阿毅
      阿毅
      2018-08-28
      1. 最新版6.7.2还存在这个bug

      2. 是的100%出现这个问题

      3. 一直是失败的。

      4. wx.uploadFile服务器没有接收不到视频的data,但是header里面的数据可以接收

      2018-08-28
      回复
    • Link
      Link
      2018-08-28回复阿毅

      用你提供的代码片段,在 iOS 6.7.2 版本测试了一下,上传成功了。

      2018-08-28
      回复
    • 阿毅
      阿毅
      2018-08-28回复Link

      请问你是在本地的视频库里面选择的还是拍摄上传的啊。拍摄上传是正常的,本地的视频才出现上传不了的。我服务器收到了你们的视频了。

      2018-08-28
      回复
    • Link
      Link
      2018-08-28回复阿毅

      是在本地视频库选择的视频,就是在弹出的 actionsheet 选第二项“从相册选择视频”之后选的视频。不过这个视频是我刚刚拍摄好的。


      你确认你也是这样在 6.7.2 版本操作,100% 失败吗?

      2018-08-28
      回复
    • 阿毅
      阿毅
      2018-08-28回复Link

      是的100%,服务器只能接收到header的数据,其他的就没有了,ios 才出现这个bug,安卓的没事

      2018-08-28
      回复
  • 是柿子啊
    是柿子啊
    2018-08-16

    你好,在iOS端的选择本地视屏的时候,需要确认是否在icloud中获取的?

    2018-08-16
    赞同
    回复 10
    • 阿毅
      阿毅
      2018-08-16

      本地的啊

      2018-08-16
      回复
    • 是柿子啊
      是柿子啊
      2018-08-16回复阿毅

      麻烦提供一下代码片段

      2018-08-16
      回复
    • 阿毅
      阿毅
      2018-08-16回复是柿子啊

      //上传视频

      uploadVideo:function(){

      let _this = this;

      let list = ['camera', 'album'];

      wx.showActionSheet({

      itemList: ['拍摄视频','从相册选择视频','从视频库选择视频'],

      success: function (res) {

      if(res.tapIndex==0 || res.tapIndex==1){

      wx.chooseVideo({

      sourceType:[list[res.tapIndex]],

      compressed:true,

      maxDuration:app.globalData.isIos?60:180,

      success:function(res){

      _this.videoLink=null;

      _this.setData({

      videoUp:0

      });

      // 视频上传状态

      _this.videoUpStatus = true;

      const uploadTask = wx.uploadFile({

      url: app.globalData.baseUrl+'?r=mpupfile', 

      filePath: res.tempFilePath,

      name: 'video',

      header: {

      'token': app.globalData.token,

      'content-type': 'multipart/form-data'

      },

      formData:{

      "test":"test"

      },

      success: function (res) {

      console.log(res,'===')

      let dat  = JSON.parse(res.data)

      if(dat.code==1 && dat.data){

      wx.showToast({

      title: '上传成功',

      icon: 'none',

      mask:true,

      duration:2000

      })

      _this.setData({

      videoLink:dat.data

      })

      }else if(dat.code==0){

      wx.showToast({

      title: dat.msg?dat.msg:'上传失败',

      icon: 'none',

      mask:true,

      duration:2000

      })

      }

      },

      fail: function (err) {

      wx.showToast({

      title: '网络出错',

      icon: 'none',

      mask:true,

      duration:2000

      })

      },

      complete:function(){

      _this.videoUpStatus = false;

      }

      })

      uploadTask.onProgressUpdate((res) => {

      _this.setData({

      videoUp:res.progress

      })

      })

      }

      ,fail:function(err){

      console.log('选择没有用')

      }

      })

      }else{

      }

      }

      ,fail:function(err){

      console.log('fail',err)

      }

      })

      },


      2018-08-16
      回复
    • 是柿子啊
      是柿子啊
      2018-08-16回复阿毅

      你好,请按照教程提供一下代码片段,如方便,请加上接口:https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html 

      2018-08-16
      回复
    • 阿毅
      阿毅
      2018-08-16回复是柿子啊

      wechatide://minicode/3K5qvImw7Z1W


      上面是代码片段地址

      2018-08-16
      回复
    查看更多(5)
  • 阿毅
    阿毅
    2018-08-16





    2018-08-16
    赞同
    回复