Angular2中的HTTP Post二进制文件

时间:2016-02-19 22:16:51

标签: angular

我有一个接受删除文件(图像)的组件,然后可以将它们上传到服务器。

export class MyComp {
  function save() {
    let data : ArrayBuffer = this.readFile(this.file);
    this.imageService.upload(data);
  }
}

服务将数据作为二进制内容发布到服务器(内容类型为image / png)。

@Injectable()
export class ImageService {
    private http: Http;

    constructor(@Inject()http: Http) {
        this.http = http;
    }
    upload(image: ArrayBuffer) {
        let headers = new Headers({ 'Content-Type': 'image/png' });
        //let arr = new Int16Array(image);
        //let body = String.fromCharCode.apply(null, arr);
        return this.http
            .put('/upload', body, { headers: headers })
            .map(response => response.json());
    }

问题是我没有到达发送二进制数据(ArrayBuffer)。我尝试发送ArrayBuffer(它发送一个字符串“ArrayBuffer”!),发送一个Int16Array(它发送更多的字节),转换为字符串...但没有任何作用。

1 个答案:

答案 0 :(得分:2)

这些方法尚未实施;检查requestresponse的来源。

export class Request {
  // TODO: support URLSearchParams | FormData | Blob | ArrayBuffer
}
export class Response {
  // TODO: Support ArrayBuffer, JSON, FormData, Blob
}