如何使用javascript上传二进制blob

时间:2017-12-01 16:28:05

标签: javascript c# httprequest blob

我用网络摄像头拍摄了一些视频并将其放在blob上。之后我做了两件事:

  1. 将其保存到本地文件
  2. 以POST请求发送
  3. 保存的文件完美无缺,但是帖子请求中的数据作为文本到达我的C#HttpListener。

    在发送blob之前,还是在收到blob之后,我还需要做些什么吗?

    版本1:

    function uploadBlob( aBlob ) {
      $.ajax({
      type: 'POST',
      url: 'https://TTTEServer:1300/TTTE?Action=UploadVideo',
      data: aBlob,
      datatype: 'dataType'
      }).done(function(data) {
        console.log(data);
      });
    }
    

    版本2:

    function uploadBlob(blob){
        var reader = new FileReader();
        reader.onload = function(event){
        var fd = new FormData();
        fd.append('fname', 'test.txt');
        fd.append('data', event.target.result);
        $.ajax({
            type: 'POST',
            url: 'https://TTTEServer:1300/TTTE?Action=UploadVideo',
            data: fd,
            processData: false,
            contentType: false
        }).done(function(data) {
            console.log(data);
        });
    };      
    reader.readAsDataURL(blob);
    }
    

    下载blobl的功能很好用:

    function downloadBlob(blob) {
      var url = window.URL.createObjectURL(blob);
      var a = document.createElement('a');
      a.style.display = 'none';
      a.href = url;
      a.download = 'test.webm';
      document.body.appendChild(a);
      a.click();
      setTimeout(function() {
      document.body.removeChild(a);
      window.URL.revokeObjectURL(url);
      }, 100);
    }
    

0 个答案:

没有答案