我尝试使用Imgur的API上传图片。我想让我的代码尽可能简单,以便我尝试使用angular-file-upload指令。
我已设置指令以使用标记并将请求提交给API:
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指令或另一种简单的方法来解决这个问题的方法将不胜感激。
一个要求是我需要提供上传状态的反馈:百分比上传,成功,错误和错误原因。
答案 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
});