jQuery+PHP实现剪切板粘贴上传图片并返回URl显示图片。

效果如下图

a.JPG

比如在做在线聊天系统的时候,单纯的文字沟通满足不了需求,如果能有截图粘贴发送就好了,本文就是为了解决这个问题的。直接上demo,

点击此处进入剪切板粘贴上传>>

jQuery部分可以看源代码,PHP部分是普通的文件上传,成功返回图片地址。


后端PHP代码如下:

if(empty($_FILES["file"])){die();}

if (
	(($_FILES["file"]["type"] == "image/gif")
	|| ($_FILES["file"]["type"] == "image/jpeg")
	|| ($_FILES["file"]["type"] == "image/png")
	|| ($_FILES["file"]["type"] == "image/pjpeg"))
	//&& ($_FILES["file"]["size"] < 20000)
){
	if ($_FILES["file"]["error"] <=0){
			
		unlinkbefore();

		$extend = substr($_FILES["file"]["name"],strripos($_FILES["file"]["name"], ".")-1);
		$newname = uniqid().$extend;
		$newname = "upload/".$newname;

		@move_uploaded_file(
			$_FILES["file"]["tmp_name"],
			$newname
		);
		$info = fun_urlinfo();
		echo $info['path'].'/'.$newname;


	}
}
function fun_urlinfo(){
	$http_type = ((isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on') || (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https')) ? 'https://' : 'http://';
	$host=$_SERVER['HTTP_HOST'];
	$root=$_SERVER['DOCUMENT_ROOT'];
	$self=$_SERVER['PHP_SELF'];
	$url = $http_type.$host.$self;
	$path = substr($url,0,strripos($url,'/'));
	$info = array(
		'type'=>$http_type,
		'host'=>$host,
		'root'=>$root,
		'self'=>$self,
		'url'=>$url,
		'path'=>$path,
	);
	return $info;
}
function unlinkbefore(){
	//清空现有测试目录
	$path = 'upload';
	$fullpath = getcwd().'/'.$path;
	$handle = opendir($fullpath);
	while(($entry = readdir($handle))!==false){
	    if($entry!=='.' && $entry!=='..'){
			@unlink($path.'/'.$entry);
	    }
	}
	closedir($handle);
}