上传视频到服务器

Posted

技术标签:

【中文标题】上传视频到服务器【英文标题】:Uploading video to server 【发布时间】:2018-12-03 07:57:38 【问题描述】:

我在我的应用程序中使用 react-native-camera(^0.6.0),我必须将录制的视频作为多部分数据上传到服务器。在android中,他们是这样发布的,


  _parts: [
    [
      'file',
      
        name: 'VID_20181130_150959.mp4',
        uri: 'file:///storage/emulated/0/DCIM/VID_20181130_150959.mp4',
        type: 'video/mp4'
      
    ]
  ]

但在 ios 中,文件路径返回为 assets-library://asset/asset.mov?id=41B76A24-1018-46C1-A658-C1EFFC552FD0&ext=mov 但如果我发布资产路径,它不会上传。


  _parts: [
    [
      'file',
      
        name: '41B76A24-1018-46C1-A658-C1EFFC552FD0.mov',
        uri: 'assets-library://asset/asset.mov?id=41B76A24-1018-46C1-A658-C1EFFC552FD0.mov',
        type: 'video/mov'
      
    ]
  ]

谁能帮我解决这个问题???

我正在使用 iPhone 6 来调试代码,

var url = DomainAPI.lashHostname + '/attachments?token=' + value + '&class=Quick';
fetch(url, 
      method: 'POST',
      headers: 
        'Accept': 'application/json',
        'Content-Type': 'multipart/form-data',
      ,
      body: JSON.stringify(formData)
    ).then((response) => response.json())
      .then((responseData) => 
        console.log('responseData------->************$$$$$$$$$$$' + JSON.stringify(responseData));
        if (responseData.error.code == 0) 
          this.sendFiletoServer(responseData.id, value);
         else 
          this.setState( loading: false );
          Actions.pop();
        
      ).catch((err) => 
        console.log('responseData-------> err ************$$$$$$$$$$$' + JSON.stringify(err));
        this.setState( loading: false );
        Actions.pop();
      );

【问题讨论】:

你能显示你的上传代码吗?也许在世博小吃? 请检查上面添加的@Raptor 仍然看不到关键部分,即如何生成formData。阅读this 和this 【参考方案1】:

查看此代码对我有用,希望对您有所帮助

 let formData = new FormData();
  formData.append("videoFile", 
    name: name.mp4,
    uri: video.uri,
    type: 'video/mp4'
);
formData.append("id", "1234567");

try 
    let response = await fetch(url, 
        method: 'post',
        headers: 
            'Content-Type': 'multipart/form-data',
        ,
        body: formData
    );
    return await response.json();

catch (error) 
    console.log('error : ' + error);
    return error;

【讨论】:

以上是关于上传视频到服务器的主要内容,如果未能解决你的问题,请参考以下文章

上传视频到服务器

如何在android中以编程方式上传到服务器之前减小视频的大小[关闭]

安卓---视频模块需求-视频上传到亚马逊服务器-内容分片上传

Android---视频模块需求-视频上传到亚马逊服务器-内容分片上传

上传到 PHP 服务器后,录制的 iPhone X 视频将无法播放

无法使用 AVFoundation 将录制的视频上传到服务器 - Swift 3