javascript - 将上传文件转换为字节数组以发送到 Angular/Typescript 中的 API 请求

标签 javascript angular typescript

如何在 Angular/Typescript 中将上传的文件转换为字节数组?

组件.ts

 buildRequest(): CreateRequest { 
 var reader = new FileReader();  
    return {
      create: {
        fileData: this.reader.readAsArrayBuffer(this.fileToUpload)        
      }
    };
  }

模型

export interface CreateRequest {
    create: {
      fileData: Uint8Array[]; // Also, is this correct representation of byte array?
    };
  }

目前,当我将 ReadAsArrayBuffer 函数分配给 fileData 时出现错误 -

"Type 'void' is not assignable to type 'Uint8Array[]'"

.

将字节数组发送到 API 请求的正确方法是什么?

最佳答案

问题已回答here !

我相信属性是字符串、blob 或任何。

export interface CreateRequest {
    create: {
      fileData: string|any;
    };
}

顺便说一句,IO 函数是异步的(可能在任何语言中)!,您需要使用事件监听器。

reader.addEventListener('loadstart', handleEvent);
reader.addEventListener('load', handleEvent);
reader.addEventListener('loadend', handleEvent);
reader.addEventListener('progress', handleEvent);
reader.addEventListener('error', handleEvent);
reader.addEventListener('abort', handleEvent);

https://developer.mozilla.org/en-US/docs/Web/API/FileReader/load_event

如果您需要其他引用资料,希望对您有所帮助!

https://nehalist.io/uploading-files-in-angular2/

关于javascript - 将上传文件转换为字节数组以发送到 Angular/Typescript 中的 API 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58085174/

相关文章:

angular - 如何使用 Angular 在 vi​​s.js 中实现网络可视化?

angular - 如何在 MatSnackBar 中使用垫子图标?

javascript - 如何将 unix 时间戳转换为 TypeScript 中的日期?

javascript - 是否可以从 ExtendScript 外部执行 JSX 脚本?

Javascript 第 n 次出现的字符串并提取到该字符串的子字符串

javascript - fullPage.js 渐变背景

javascript - 如何从 Marionette.js ItemView 模板访问 Backbone.Model 方法?

css - Angular 2+ 动态生成 css

angular - 从 Assets 中获取图像并将其转换为 base64

javascript - 如何解决 'Assertions require every name in the call target to be declared with an explicit type annotation.ts(2775)' ?