使用AngularJS将图像上传到Imgur

时间:2015-10-04 04:44:57

标签: javascript angularjs imgur

我尝试使用Imgur的API上传图片。我想让我的代码尽可能简单,以便我尝试使用angular-file-upload指令。

我已设置指令以使用标记并将请求提交给API:

https://api.imgur.com/3/image

HTML看起来像这样:

<input type="file" nv-file-select="" uploader="uploader">

在控制器里面,我这样做:

$scope.uploader = new FileUploader({
    url: 'https://api.imgur.com/3/image',
    headers: {
        Authorization: 'Client-ID XXXXXXXXXXXXXXX',
    },
    autoUpload: true
});

我面临的问题是Imgur API希望在&#34; image&#34;中接收文件。标题中的字段为二进制文件或base64数据,但浏览器似乎在POST请求的正文中发送文件。

我一直试图让指令在标题中发送文件,但我找不到办法。使用angular-file-upload指令或另一种简单的方法来解决这个问题的方法将不胜感激。

一个要求是我需要提供上传状态的反馈:百分比上传,成功,错误和错误原因。

1 个答案:

答案 0 :(得分:2)

我找到了这个问题的简单答案。

为angular-file-upload指令创建FileUploader对象的实例时,必须指定alias选项以更改包含文件数据的表单字段的名称(默认file 1}}到Imgur期待的名字:image

$scope.uploader = new FileUploader({
    url: 'https://api.imgur.com/3/image',
    alias: 'image',
    headers: {
        Authorization: 'Client-ID XXXXXXXXXXXXXXX',
    },
    autoUpload: true
});