如何在winrt html/JavaScript中上传一个文件流/缓冲区?

how do you upload a filestream/buffer in winrt html/JavaScript?

本文关键字:一个 文件 缓冲区 winrt html JavaScript      更新时间:2023-09-26

我想从本地存储读取文件并通过ajax上传它。这是如何做到的呢?

在大多数浏览器中,您可以使用FileReader从文件输入中读取数据。有读取数据的各种功能;此示例使用返回包含所有字节的ArrayBuffer的函数:

<script>
  window.onload = function() {
    document.getElementById('upload').onchange = function(e) {
      var file = e.target.files[0];
      var fileReader = new FileReader();
      fileReader.onload = function(e) {
        var bytes = e.target.result;
        console.log(bytes);
      };
      fileReader.readAsArrayBuffer(file);
    };
  };
</script>
<input type = 'file' id = 'upload' />

我总算弄明白了。下面的代码可供感兴趣的人使用。

var form = new FormData();
            form.append("data", angular.toJson(message));
            var bytes = new Uint8Array(audio.length); //audio is an IBuffer 
                var dataReader = Windows.Storage.Streams.DataReader.fromBuffer(audio);
                dataReader.readBytes(bytes);
                dataReader.close();
                var media = new Blob([bytes], { type: "application/octet-stream" }); //application/octet-stream or audio/mpeg?
                form.append("attached_files", media, "recording-aac.caf");
            return $http.post(AppSettings.baseUri + "api/sendmessage", form, { headers: { "Content-Type": undefined } });