使用 AngularJS 将图像上传到 Imgur
Uploading image to Imgur using AngularJS
我正在尝试使用 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 期望接收 header 中 "image" 字段中的文件作为二进制文件或 base64 数据,但是浏览器似乎在 POST 请求的 body 中发送文件。
我一直在尝试让指令改为在 header 中发送文件,但我找不到执行此操作的方法。一种使用 angular-file-upload 指令或另一种简单的实现方法来解决此问题的方法将不胜感激。
一个要求是我需要提供上传状态的反馈:上传百分比、成功、错误和错误原因。
我找到了这个问题的简单答案。
为angular-file-upload 指令创建FileUploader 对象的实例时,必须指定alias
选项来更改文件数据所在的表单字段的名称包括从默认 file
到 Imgur 期望的名称:image
.
$scope.uploader = new FileUploader({
url: 'https://api.imgur.com/3/image',
alias: 'image',
headers: {
Authorization: 'Client-ID XXXXXXXXXXXXXXX',
},
autoUpload: true
});
我正在尝试使用 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 期望接收 header 中 "image" 字段中的文件作为二进制文件或 base64 数据,但是浏览器似乎在 POST 请求的 body 中发送文件。
我一直在尝试让指令改为在 header 中发送文件,但我找不到执行此操作的方法。一种使用 angular-file-upload 指令或另一种简单的实现方法来解决此问题的方法将不胜感激。
一个要求是我需要提供上传状态的反馈:上传百分比、成功、错误和错误原因。
我找到了这个问题的简单答案。
为angular-file-upload 指令创建FileUploader 对象的实例时,必须指定alias
选项来更改文件数据所在的表单字段的名称包括从默认 file
到 Imgur 期望的名称:image
.
$scope.uploader = new FileUploader({
url: 'https://api.imgur.com/3/image',
alias: 'image',
headers: {
Authorization: 'Client-ID XXXXXXXXXXXXXXX',
},
autoUpload: true
});