js实现剪切板效果复制黏贴图片
2015-05-06 21:47
211 查看
使用js来实现类似word剪切板的效果,即复制黏贴图片,而js也正好提供了这种可能,那就是textarea的事件驱动,监视textarea的黏贴事件,一旦出现黏贴就将获得的图片上传到服务器,在从服务器中拿出显示到页面上,获得图片数据的方法也可以用js中提供的clipboard的方式获取,下面是个例子,
通过clipboard获取后打上断点,查看剪贴板上的数据可以发现在items下的数据为kind为file,type为“image/png”
那么方法就确定了,当KInd为file且type中包含image字样就将该数据上传,上传方法采用ajax即可,写在事件中,通过getasfile函数获得图片数据,并写入到表单中,通过ajax上传即可,具体过程如下:
document.getElementsByTagName("textarea")[0].addEventListener('paste', function(e) {
var clipboard = e.clipboardData;
for(var i=0,len=clipboard.items.length; i<len; i++) {
if(clipboard.items[i].kind == 'file' || clipboard.items[i].type.indexOf('image') > -1) {
var imageFile = clipboard.items[i].getAsFile();
var form = new FormData;
form.append('avatar', imageFile);
//var callback = G.uploadpicCallback || function(type, data){};
$.ajax({
url: "uploadimage.php",
type: "POST",
data: form,
processData: false,
contentType: false,
beforeSend: function() {
$('#uploadmessage').html('正在上传图片...');
},
error: function() {
$('#uploadmessage').html('上传失败请重新上传!');
alert('图片上传失败');
},
success: function(url) {
$('#uploadmessage').html('图片上传成功');
setTimeout('$(\'#uploadmessage\').html(\'\')', 1000);
var img=new Image();
img.src=url;
document.getElementById('uploadmessage').appendChild(img);
//textarea.val(textarea.val() + '[![]('+url+')]('+url+')')*/
}
})
e.preventDefault();
}
uploadimage.php,最简单的上传函数,如果要实现更复杂的文字图片一起上传的话,js文件和php上传操作都需要对应的修改
if(!is_dir("./images"))
{
mkdir("./images");
}
if($_FILES['avatar']['tmp_name']){
$img=$_FILES['avatar']['tmp_name'];
preg_match("/\w*\./",$img,$img_name);
$path="images/".$img_name[0]."png";
if(move_uploaded_file($img,$path)){
$result=true;
echo $path;
}else{
$result=false;
// echo $path;
}
}
通过clipboard获取后打上断点,查看剪贴板上的数据可以发现在items下的数据为kind为file,type为“image/png”
那么方法就确定了,当KInd为file且type中包含image字样就将该数据上传,上传方法采用ajax即可,写在事件中,通过getasfile函数获得图片数据,并写入到表单中,通过ajax上传即可,具体过程如下:
document.getElementsByTagName("textarea")[0].addEventListener('paste', function(e) {
var clipboard = e.clipboardData;
for(var i=0,len=clipboard.items.length; i<len; i++) {
if(clipboard.items[i].kind == 'file' || clipboard.items[i].type.indexOf('image') > -1) {
var imageFile = clipboard.items[i].getAsFile();
var form = new FormData;
form.append('avatar', imageFile);
//var callback = G.uploadpicCallback || function(type, data){};
$.ajax({
url: "uploadimage.php",
type: "POST",
data: form,
processData: false,
contentType: false,
beforeSend: function() {
$('#uploadmessage').html('正在上传图片...');
},
error: function() {
$('#uploadmessage').html('上传失败请重新上传!');
alert('图片上传失败');
},
success: function(url) {
$('#uploadmessage').html('图片上传成功');
setTimeout('$(\'#uploadmessage\').html(\'\')', 1000);
var img=new Image();
img.src=url;
document.getElementById('uploadmessage').appendChild(img);
//textarea.val(textarea.val() + '[![]('+url+')]('+url+')')*/
}
})
e.preventDefault();
}
uploadimage.php,最简单的上传函数,如果要实现更复杂的文字图片一起上传的话,js文件和php上传操作都需要对应的修改
if(!is_dir("./images"))
{
mkdir("./images");
}
if($_FILES['avatar']['tmp_name']){
$img=$_FILES['avatar']['tmp_name'];
preg_match("/\w*\./",$img,$img_name);
$path="images/".$img_name[0]."png";
if(move_uploaded_file($img,$path)){
$result=true;
echo $path;
}else{
$result=false;
// echo $path;
}
}
相关文章推荐
- js实现图片加载时候逐渐出现的杂色效果
- JS+Flash实现图片切换幻灯片效果
- JavaScript实现图片的滑动切换效果 的Js代码
- JS实现图片高斯模糊切换效果的焦点图实例
- jquery.lazyload.js实现图片延迟加载——wordpress图片随滚动条渐显效果
- JS实现图片翻书效果示例代码
- JS实现图片上传预览效果:方法一
- 用JS实现图片模糊到清晰预加载效果
- js实现图片翻转切换效果
- js+jquery+html实现在三种不通的情况下,点击图片放大的效果
- JS原生代码实现鼠标移动图片随之移动效果(另加点击改变图片效果)
- ajax+js+dom+json+php+mysql实现仿百度、google的分页隔行变色效果(加图片)
- js实现点击图片将图片地址复制到粘贴板的方法
- js实现图片轮换效果
- JS实现点击图片在当前页面放大并可关闭的漂亮效果
- (JS+CSS)实现图片放大效果
- js实现鼠标滚轮控制图片缩放效果的方法(转)
- CSS3 animation实现图片轮播效果 自动显示 无需使用js 含代码(图片轮播效果一)
- JS实现图片幻灯片效果
- JS实现QQ图片一闪一闪的效果小例子