<?php
if ($_FILES){
print_r($_FILES);
exit();
}
//print_r($_FILES['Filedata']['tmp_name']);
?>
<!DOCTYPE html>
<html>
<head>
<title>test chrome paste image</title>
<style>
DIV#editable {
width: 400px;
height: 300px;
border: 1px dashed blue;
}
</style>
</head>
<body >
<h2>test image paste in browser</h2>
<div id="non-editable" >
<p>copy the following img, then paste it into the area below</p>
<img src="http://imgstore03.cdn.sogou.com/app/a/100520021/7c5f0dec37dbbce6bee70352b1ccc0f1" />
</div>
<div id="editable" contenteditable="true" >
<p>this is an editable div area</p>
<p>paste the image into here.</p>
</div>
</body>
<script type="text/javascript">
(function() {
function paste_img(e) {
if ( e.clipboardData.items ) {
// google-chrome
alert('support clipboardData.items(chrome ...)');
ele = e.clipboardData.items
for (var i = 0; i < ele.length; ++i) {
if ( ele[i].kind == 'file' && ele[i].type.indexOf('image/') !== -1 ) {
var blob = ele[i].getAsFile();
window.URL = window.URL || window.webkitURL;
var blob = ele[i].getAsFile();
window.URL = window.URL || window.webkitURL;
var blobUrl = window.URL.createObjectURL(blob);
var new_img= document.createElement('img');
new_img.setAttribute('src', blobUrl);
var new_img_intro = document.createElement('p');
new_img_intro.innerHTML = 'the pasted img url(open it in new tab): <br /><a target="_blank" href="' + blobUrl + '">' + blobUrl + '</a>';
document.getElementById('editable').appendChild(new_img);
document.getElementById('editable').appendChild(new_img_intro);
uploadImg(ele[i].getAsFile())
}
}
} else {
alert('non-chrome');
window.setTimeout(function(){
var imgs = document.getElementById('editable').getElementsByTagName('img')
for (var i = 0,j = imgs.length ; i<j ; i++){
var img = imgs[i]
var blob = dataURItoBlob(img.getAttribute('src'))
console.log(blob)
uploadImg(blob)
}
}, 0 )
}
}
document.getElementById('editable').onpaste = paste_img
})()
function uploadImg(blob){
var form = new FormData
form.append('paste_img' , blob)
var xhr = new XMLHttpRequest()
xhr.open('POST', '')
xhr.send(form)
}
function dataURItoBlob(dataURI) {
var binary = atob(dataURI.split(',')[1]);
var array = [];
for(var i = 0; i < binary.length; i++) {
array.push(binary.charCodeAt(i));
}
return new Blob([new Uint8Array(array)], {type: 'image/jpeg'});
}
</script>
</html>