最短的图片上载工具
仅仅几行JavaScript代码,就可以实现这个超精干的图片上载工具。
这是一个基于imgur.com API的图片上载器。如果你想实现更多的功能,如改变大小、剪切、绘图、色彩调整等等,你可以查看这个之前写的文章。
回到正题。我已经和Imgur.com的创始人打了个招呼(嗨,Alan!)。他最近在他的图片分享网站上增加了拖拽支持。并且,Alan允许Cross-Domain XMLHttpRequest(谢谢!)。所以基本上你可以在你的网站上完全不依赖于服务器端代码处理,而仅仅是使用它提供的API来上载图片到他的网站。
这里是一个例子,来展示如何使用他的API:
(当然,你也需要理解FormData,请看这里)
function upload(file) {
// 文件来自<input>标签或者拖拽
// 这货是图片吗?
if (!file || !file.type.match(/image.*/)) return;
// 没错,这货就是图片!
// 现在让我们来建立一个FormData对象
var fd = new FormData();
fd.append("image", file); // 添加文件
fd.append("key", "6528448c258cff474ca9701c5bab6927");
// 获取你自己的Key:http://api.imgur.com/
// 创建XHR(Cross-Domain XHR 太给力了!!!)
var xhr = new XMLHttpRequest();
xhr.open("POST", "http://api.imgur.com/2/upload.json"); // 轰隆隆!
xhr.onload = function() {
// 大胜利!
// 图片的网址是:
JSON.parse(xhr.responseText).upload.links.imgur_page;
}
// 嗯,我没有处理错误,给读者个练习。
// 现在,我们可以发送formdata了
xhr.send(fd);
}
以上。
Chrome、Firefox 4上均工作正常。
【原文作者:Paul Rouget 】
分类:Mozilla
读者回应
对此文章发表回复


hi 你好,我是个电脑白痴,想学习下。
请问这些数据码是不是复制后再粘贴就可以了吗?那得粘贴在哪里呢?
谢谢指教