var fd = new FormData();
fd.append("image", file); // Append the file
fd.append("key", API_KEY);
// Create the XHR (Cross-Domain XHR FTW!!!)
var xhr = new XMLHttpRequest();
xhr.open("POST", "http://api.imgur.com/2/upload.json"); // Boooom!
xhr.onload = function() {
console.log(JSON.stringify(xhr.responseText));
alert("Anything?");
var img_url = JSON.parse(xhr.responseText).upload.links.original;
console.log("Image url of the uploaded image" + img_url);
Run Code Online (Sandbox Code Playgroud)
上面的代码是我用来通过phonegap上传图像文件的代码.但后来我猜测代码已过时,可以使用最新的imgur API.由OAuth支持.我可以知道如何修复它以上传图像吗?
<video width="320" height="240" controls>
<source src="http://i.imgur.com/91S22q6.gifv" type="video/webm">
Your browser does not support the video tag.
</video>
Run Code Online (Sandbox Code Playgroud)
这似乎没有加载视频.我认为.gifv当它需要使用时,它会以某种方式弄乱它.webm.当我将其更改为时.webm,它仍然无法加载.有没有办法嵌入.gifv?
Imgur似乎没有给出某些图像的原始图像,例如https://i.stack.imgur.com/P4cLI.jpg?maxwidth=123456789&shape=thumb&fidelity=high
问题是我打赌“形状=拇指”和“保真度=高”正在降级原始图像。
不给我原件:
https:
//i.stack.imgur.com/P4cLI.jpg
不存在:
https:
//imgur.com/hJCEq8P_d
https://imgur.com/a/hJCEq8P_d
https://i.stack.imgur.com/P4cLI.jpg在理想的世界里会是这样,但事实并非如此。
还有比“高”更高的保真度吗?还有比“拇指”更好的形状吗?我只想要原始图像或它的最佳版本,而 Imgur 却在愚弄我,不给我这些,愚蠢地浪费我的时间。
在谈到正则表达式时我很缺乏经验,并且想知道是否有人可以帮助我实现以下目标.
我需要一个正则表达式来验证某个URL是否是一个有效的imgur图像并返回图像的ID.
Match imgurMatch = imgurRegex.Match(URL);
if(imgurMatch.Success)
id = imgurMatch.Groups[0].Value
Run Code Online (Sandbox Code Playgroud)
这里有些例子:
http://imgur.com/gallery/qtPdb(ID = qtPdb)
http://i.imgur.com/RcVIa.jpg(ID = RcVIa)
(可以是.jpg,.png,.gif类型)
http://imgur.com/3ZZuG(ID = 3ZZuG)
我认为可以处理上述并返回正确ID的正则表达式对我来说已经足够了,因为即使验证由于某种原因失败,我也能够以另一种方式处理它.
如果需要更多细节,请告诉我.
谢谢!
Tribe84
请在上面看到这个上下文:匿名上传文件对象到Imgur API(JSON)给出了身份验证错误401(如果有人感兴趣,它有doInBackground()方法的代码)
使用AsyncTask类,我将图像上传到Imgur.上传过程在doInBackground()方法中完成.它返回指向onPostExecute的String链接,该链接应以Toast消息的形式显示链接.
@Override
protected void onPostExecute(String result)
{
super.onPostExecute(result);
Toast.makeText(getApplicationContext(), "Uploaded! Link: " + result, Toast.LENGTH_SHORT).show();
}
Run Code Online (Sandbox Code Playgroud)
但是,这样做会产生以下错误:
对于UploadToImgurTask类型,方法getApplicationContext()未定义
尝试将返回字符串复制到剪贴板会产生类似的问题.
@Override
protected void onPostExecute(String result)
{
super.onPostExecute(result);
ClipboardManager clipboard = (ClipboardManager)getSystemService(Context.CLIPBOARD_SERVICE);
ClipData clip = ClipData.newPlainText("label", "Text to copy");
clipboard.setPrimaryClip(clip);
}
Run Code Online (Sandbox Code Playgroud)
对于UploadToImgurTask类型,方法getSystemService(String)未定义
我可以使用这样的 api 将匿名图像上传到 imgur:
public static void UploadImage()
{
Image image = GetImage();
string base64 = Util.ImageToBase64(image);
using (WebClient client = new WebClient())
{
client.Headers.Add("Authorization", "Client-ID " + clientID);
NameValueCollection data = new NameValueCollection();
data["image"] = base64;
data["type"] = "base64";
byte[] responsePayload = client.UploadValues("https://api.imgur.com/3/image/", "POST", data);
string response = Encoding.ASCII.GetString(responsePayload);
}
}
Run Code Online (Sandbox Code Playgroud)
它正在上传到一个完全随机的网址。我找不到任何说明如何执行此操作的文档,但是是否可以将图像上传到用户的帐户,以便它显示在他们上传的图像中?
我目前正忙于创建一个可以放置内容等的网站。
当我想添加图像时,我可以从桌面或使用 url 上传它。我知道有一些 api 可以使用,但我已经联系了 IMGUR,但他们仍然没有回复。我想知道; 当我通过自己的网站使用api直接上传到IMGUR时,是否有限制?
因为我希望所有上传都是匿名的,所以没有图像保存到我的帐户中。
我想在 chrome 扩展中使用 Imgur API。来自用户输入的身份验证响应被发送到在 imgur 网页上我的应用程序配置文件中设置的“重定向 URL”。
如何设置“重定向 url”以指向用户的 chrome 浏览器扩展?
我只看到设置微型服务器来跟踪用户令牌的繁重解决方案:
他们的文档提到 localhost 作为可能的 url 重定向。我正在研究这个大方向,但对我来说没有意义:似乎更像是开发人员的本地测试,而不是我正在寻找的答案。
感谢您提供任何意见。
假设我有一个像这样的 imgur 网址:https ://imgur.com/pCEoGjF
从网址我不知道这是图片还是gif。我知道我可以在文件末尾添加“.jpg”以获得图像的直接链接,但如果链接恰好是 gif,这也会显示 gif。我将如何以编程方式(使用 imgur API 或其他方式)检查 url https://imgur.com/pCEoGjF或https://imgur.com/pCEoGjF.jpg 上的项目是图像还是 gif?
编辑:我试过这个
print(requests.head(submission.url + ".jpg").headers['Content-Type'])
Run Code Online (Sandbox Code Playgroud)
但它抱怨以下错误:
KeyError: 'content-type'
Run Code Online (Sandbox Code Playgroud)
暗示内容类型不是标题中的键。我打印了标题并确认了这一点,因为它们如下:
{'Content-Length': '0', 'X-Served-By': 'cache-sjc3138-SJC', 'X-Cache': 'HIT', 'Accept-Ranges': 'bytes', 'X-Timer': 'S1498627080.598287,VS0,VE0', 'Server': 'cat factory 1.0', 'Retry-After': '0', 'Connection': 'close', 'X-Cache-Hits': '0', 'Location': 'https://i.imgur.com/APMnK9t.jpg', 'Cache-Control': 'no-store, no-cache, must-revalidate, post-check=0, pre-check=0', 'Date': 'Wed, 28 Jun 2017 05:17:59 GMT', 'X-Frame-Options': 'DENY'}
Run Code Online (Sandbox Code Playgroud)
我想我可以检查 content-length 是否不为 0 以查看它是否是 gif?想法?