从Ctr + V事件(javascript)上传图像文件

时间:2013-01-28 20:27:35

标签: javascript file-upload canvas base64 blob

我正在尝试使用此处显示的技术:http://joelb.me/blog/2011/code-snippet-accessing-clipboard-images-with-javascript/来捕获用户粘贴到网页上的图像。这与Chrome和Firefox兼容。

一切都运作良好。图像数据应该存储在pastedImage.src中。我能够在页面上显示图像(进入img元素,或在画布上绘制)。

但是,pastedImage.src中存储的内容在Chrome和Firefox中有所不同。 Firefox将实际图像存储在base64编码数据URL中,我可以解析并上传; Chrome以http:// [domain] / [string]的形式存储临时URL,该URL确实指向图像。请在此处查看:http://test.vapenerd.com/paste.html

我无法弄清楚如何从中获取实际的图像数据 - 我尝试了FileReader(),但它似乎不起作用。

现在我的解决方法是将图像绘制到画布中,然后使用返回base64编码数据URL的toDataURL()方法获取它。

对不起,我不是网络开发者,希望这不是太混乱。

感谢。

1 个答案:

答案 0 :(得分:4)

只需将其作为数据uri

阅读
var reader = new FileReader();
reader.onload = function(event){
    createImage(event.target.result);
}; // data url!
reader.readAsDataURL(blob);

DEMO