js+php实现粘贴板图片粘贴上传功能
h5的可以检测剪贴板的文件类型,进而将文件类型保存为二进制数据传输到后端进行上传
今天要实现的就是一个简单的编辑器图片复制粘贴上传图片效果
原理很简单,就是监听paste事件,获取clipboardData数据,进行类型判断,然后上传处理
js端代码
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>BFW NEW PAGE</title> <script id="bfwone" data="dep=jquery.17&err=0" type="text/javascript" src="http://repo.bfw.wiki/bfwrepo/js/bfwone.js"></script> <script type="text/javascript"> bready(function() { document.addEventListener('paste', function(event) { console.log(event) var isChrome = false; if (event.clipboardData || event.originalEvent) { //not for ie11 某些chrome版本使用的是event.originalEvent var clipboardData = (event.clipboardData || event.originalEvent.clipboardData); if (clipboardData.items) { // for chrome var items = clipboardData.items, len = items.length, blob = null; isChrome = true; event.preventDefault(); //在items里找粘贴的image,据上面分析,需要循环 for (var i = 0; i < len; i++) { if (items[i].type.indexOf("image") !== -1) { blob = items[i].getAsFile(); } } if (blob !== null) { // var file = new File([blob], "dd.txt"); //document.getElementById("test").files[0] = file; var reader = new FileReader(); reader.onload = function (event) { // event.target.result 即为图片的Base64编码字符串 var base64_str = event.target.result; $("#editor").append("<img src='"+base64_str+"' />"); uploadImgFromPaste(base64_str, 'paste', isChrome); //可以在这里写上传逻辑 //直接将base64编码的字符串上传(可以尝试传入blob对象,看看后台程序能否解析) ...
点击查看剩余70%
网友评论0