javascript - 通过他们的 API 将多张图片上传到 Imgur
问题描述
好吧,只是为了解决这个问题,PHP 不是一个选项,因为这个项目的代码必须可以通过浏览器通过 chrome 的页面源和检查器以及所有这些来访问。我正在尝试一次上传多张图片(通过 HTML 的 input=file),但遇到了一些麻烦。我得到了一个应该只处理一个文件的代码,它确实可以,但是当将它实现到 for 循环中时,它不能按预期工作,它只上传第一个图像,然后给出响应和只有这样。
var files = $("#upload").get(0).files;
for (var i = 0; i < files.length; i++) {
if (files[i]) {
var apiUrl = 'https://api.imgur.com/3/image';
var apiKey = '<apiKey>';
var settings = {
async: false,
crossDomain: true,
processData: false,
contentType: false,
type: 'POST',
url: apiUrl,
headers: {
Authorization: 'Client-ID ' + apiKey,
Accept: 'application/json'
},
mimeType: 'multipart/form-data'
};
var formData = new FormData();
formData.append("image", files[i]);
settings.data = formData;
var urlObj = URL.createObjectURL(files[i]);
$("#sortable").html("");
$("#sortable").append("<img src='" + urlObj + "' id='" + (i + 1) + "' class='unuploaded ui-state-default'>");
// Response contains stringified JSON
// Image URL available at response.data.link
$.ajax(settings).done(function(response) {
$("#" + (i+1)).src = response.data.link;
$("#" + (i+1)).removeClass("unuploaded");
});
}
}
解决方案
推荐阅读
- c - 为什么在此代码中使用 log base 10 将 int 转换为 string?
- java - 使用 ffmpeg 将视频转换为 mp3 音频
- unit-testing - 如何测试我的应用程序方法是否处理 REST API 的 HTTP 状态 404 而无需实际调用该 REST API
- python-3.x - Python 脚本中的 Azure 函数 ModuleNotFoundError
- string - 如何在 SIMD/AVX2 代码中连接有界长度的字符串
- algorithm - 加权圆图的总路径概率
- macos - 我可以使用通配符来阻止主机文件中的网站吗?
- python - ```time.perf_counter()``` 命令有什么作用?
- java - Java:如何将 0 到 1 之间的值四舍五入到至少 3 位小数?
- c# - 我在 Visual Studio 2013 的可扩展性选项卡中找不到添加自定义命令选项