开源是程序员的基本美德
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>Document</title> </head> <body> <h2>首先去复制一个图片,来这里粘贴一下</h2> <img id="pasteimg" src=""> <hr> <input type="button" value="base64转blob" onclick="GetCheckBlob()" /> <hr> <img id="CheckBlobimg" src=""> <script type="text/javascript" src="http://apps.bdimg.com/libs/jquery/2.1.4/jquery.js"></script> <script> //将粘贴事件绑定到 document 上 document.addEventListener("paste", function(e) { var cbd = e.clipboardData; var ua = window.navigator.userAgent; // 如果是 Safari 直接 return if (!(e.clipboardData && e.clipboardData.items)) { return; } // Mac平台下Chrome49版本以下 复制Finder中的文件的Bug Hack掉 if (cbd.items && cbd.items.length === 2 && cbd.items[0].kind === "string" && cbd.items[1].kind === "file" && cbd.types && cbd.types.length === 2 && cbd.types[0] === "text/plain" && cbd.types[1] === "Files" && ua.match(/Macintosh/i) && Number(ua.match(/Chrome\/(\d{2})/i)[1]) < 49) { return; } var item = cbd.items[0]; //直接取第一个对象 if (item.kind != undefined && item.kind == "file") { var blob = item.getAsFile(); if (blob.size === 0) { return; } //TODO 此处可以上传 //转换成base64显示 var reader = new FileReader(); reader.readAsDataURL(blob); reader.onload = function(event) { //div中的img标签src属性赋值,可以直接展示图片 $("#pasteimg").attr("src", this.result); } } }, false); //Base64转blob function dataURItoBlob(base64Data) { var byteString; if (base64Data.split(',')[0].indexOf('base64') >= 0) byteString = atob(base64Data.split(',')[1]); else byteString = unescape(base64Data.split(',')[1]); var mimeString = base64Data.split(',')[0].split(':')[1].split(';')[0]; var ia = new Uint8Array(byteString.length); for (var i = 0; i < byteString.length; i++) { ia[i] = byteString.charCodeAt(i); } return new Blob([ia], { type: mimeString }); } //按钮事件 function GetCheckBlob() { var basestr = $("#pasteimg").attr("src"); console.log("获取base64"); var blob = dataURItoBlob(basestr); console.log("转换blob"); //TODO 此处可以上传 var reader = new FileReader(); reader.readAsDataURL(blob); console.log("读取blob再显示出来"); reader.onload = function(event) { $("#CheckBlobimg").attr("src", this.result); } } </script> </body> </html>
运行之后就是下面这种样子
利用qq或者微信,去随便截取一张图片,到网页里面来粘贴一下,按Ctrl+V
上传的话,可以利用按钮事件中演示的,base64转成blob类型,或者直接上传base64。
留下您的脚步
最近评论