使用 Dropzone.JS 将图像上传到 Imgur
Upload images to Imgur with Dropzone.JS
我制作了一个页面,网站用户可以通过拖放上传图片。为此,我使用 Dropzone.JS (转到 infosite or Github) 并将文件上传到 Imgur。
问题是我不知道如何用 DropZone.JS 做到这一点。这是我用于实现 Dropzone
-class.
的代码
<div class="dropzone">
<div class="fallback">
<input name="file" type="file" multiple />
</div>
</div>
<script src="~/Scripts/DropZone.js" type="text/javascript"></script>
<script>
var myDropzone = new Dropzone(".dropzone", {
url: "https://api.imgur.com/3/image",
Authorization: 'Client-ID MY_CLIENT_ID'
});
</script>
这是我从 Imgur 得到的回复
{
"data": {
"error": "An image ID is required for a GET request to /image",
"request": "/3/image",
"method": "GET"
},
"success": false,
"status": 400
}
出现此错误:
XMLHttpRequest
cannot load https://api.imgur.com/3/image. Request header field Cache-Control
is not allowed by Access-Control-Allow-Headers
in preflight response.
如果请求成功我也会从Imgur获取上传图片的url
如果来自 imgur 的 CORS-enabled 服务不通过其 Access-Control-Allow-Headers 包含 "Cache-Control":响应 header,则不满足 CORS 要求,请求被拒绝浏览器。
试试这个:
var myDropzone = new Dropzone('.dropzone', {
//...
headers: {
'Authorization': authorizationHeader,
'Cache-Control': null,
'X-Requested-With': null
}
});
通过尝试文件 Dropzone.js 中的一些代码,我终于找到了!我添加了这行代码:
formData.append('image', file);
也感谢 Wenceslao Negrete 的回答。
我制作了一个页面,网站用户可以通过拖放上传图片。为此,我使用 Dropzone.JS (转到 infosite or Github) 并将文件上传到 Imgur。
问题是我不知道如何用 DropZone.JS 做到这一点。这是我用于实现 Dropzone
-class.
<div class="dropzone">
<div class="fallback">
<input name="file" type="file" multiple />
</div>
</div>
<script src="~/Scripts/DropZone.js" type="text/javascript"></script>
<script>
var myDropzone = new Dropzone(".dropzone", {
url: "https://api.imgur.com/3/image",
Authorization: 'Client-ID MY_CLIENT_ID'
});
</script>
这是我从 Imgur 得到的回复
{
"data": {
"error": "An image ID is required for a GET request to /image",
"request": "/3/image",
"method": "GET"
},
"success": false,
"status": 400
}
出现此错误:
XMLHttpRequest
cannot load https://api.imgur.com/3/image. Request header fieldCache-Control
is not allowed byAccess-Control-Allow-Headers
in preflight response.
如果请求成功我也会从Imgur获取上传图片的url
如果来自 imgur 的 CORS-enabled 服务不通过其 Access-Control-Allow-Headers 包含 "Cache-Control":响应 header,则不满足 CORS 要求,请求被拒绝浏览器。
试试这个:
var myDropzone = new Dropzone('.dropzone', {
//...
headers: {
'Authorization': authorizationHeader,
'Cache-Control': null,
'X-Requested-With': null
}
});
通过尝试文件 Dropzone.js 中的一些代码,我终于找到了!我添加了这行代码:
formData.append('image', file);
也感谢 Wenceslao Negrete 的回答。