php+js实现图片的上传、裁剪、预览、提交示例


Posted in PHP onAugust 27, 2013

首先用到的语言是php、插件imgareaselect(下载地址),没有太多花哨的样式,index.php代码如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta content="text/html; charset=UTF-8" http-equiv="Content-Type"> 
<link rel="stylesheet" type="text/css" href="css/imgareaselect-default.css" /> 
<script type="text/javascript" src="scripts/jquery.min.js"></script> 
<script type="text/javascript" src="scripts/jquery.imgareaselect.pack.js"></script> 
<script type="text/javascript"> 
function preview(img, selection) { 
$('#selectbanner').data('x',selection.x1); 
$('#selectbanner').data('y',selection.y1); 
$('#selectbanner').data('w',selection.width); 
$('#selectbanner').data('h',selection.height); var scaleX = 100 / (selection.width || 1); 
var scaleY = 100 / (selection.height || 1); 
$('#ferret > img').css({ 
width: Math.round(scaleX * 512) + 'px',//512、390是你上传图片的宽高 
height: Math.round(scaleY * 390) + 'px', 
marginLeft: '-' + Math.round(scaleX * selection.x1) + 'px', 
marginTop: '-' + Math.round(scaleY * selection.y1) + 'px' 
}); 
} 
//这里通过jQuery语法在原来图片后插入预览的小图片 
$(document).ready(function () { 
$('<div id="ferret"><img src="upload_pic/resized_pic.jpg" style="position: relative;" /><div>').css({ 
float: 'left', 
position: 'relative', 
overflow: 'hidden', 
width: '100px', 
height: '100px' 
}) 
.insertAfter($('#selectbanner')); 
$('#selectbanner').imgAreaSelect({ 
selectionColor: 'blue', x1:0, y1:0, x2: 100,//初始位置 
maxWidth:500,y2:100, 
aspectRatio: '1:1',//缩放比例 
selectionOpacity: 0.2 , 
onSelectEnd: preview //裁剪后执行的函数,在上面 
}); 
//确认裁剪 
$("#sliceButton").click(function() { 
var pic = $('#selectbanner').attr('src'); 
// alert(pic); 
var x,y,w,h; 
$.post( 
"cat.php", //(2)将附上这个页面的代码 
{ 
x:$('#selectbanner').data('x'), 
y:$('#selectbanner').data('y'), 
w:$('#selectbanner').data('w'), 
h:$('#selectbanner').data('h'), 
pic:pic 
}, 
function(data){ 
// alert(data); 
//把裁剪后图片加载到#sure 
if(data){ 
$('#sure').attr('src',data); 
} 
} 
); 
}); 
}) 
</script> 
<title>图片裁剪、预览</title> 
</head> 
<body> 
<?php 
//上传图片后,把图片复制到upload文件夹下面 
if($_POST){ 
$photo = $_FILES['img']['name']; 
$tmp_addr = $_FILES['img']['tmp_name']; 
$path = 'upload/'; 
$type=array("jpg","gif","jpeg","png"); 
$tool = substr(strrchr($photo,'.'),1); 
if(!in_array(strtolower($tool),$type)){ 
$text=implode('.',$type); 
echo "您只能上传以下类型文件: ",$text,"<br>"; 
}else{ 
$filename = explode(".",$photo); //把上传的文件名以"."好为准做一个数组。 
$time = date("m-d-H-i-s"); //取当前上传的时间 
$filename[0] = $time; //取文件名 
$name = implode(".",$filename); //上传后的文件名 
$uploadfile = $path.$name; 
$_SESSION['upfile'] = $uploadfile;//上传后的文件名地址 
move_uploaded_file($tmp_addr,$uploadfile); 
} 
// echo $uploadfile; 
} 
?> 
<div id="s"> 
<!--上传图片--> 
<form action="" method="post" enctype="multipart/form-data"> 
<input type="file" id="img" name="img" value="" onclick=""/> 
<input name="submit" id="submit" type="submit" value="提交" class="submit"/> 
</form> 
<!--显示图片--> 
<? if(isset($_SESSION['upfile'])){?> 
<img id="selectbanner" name="selectbanner" src="<? echo $_SESSION['upfile'];?>" title="mypic"/> 
<? }?> 
</div> 
<!--确认裁剪--> 
<div><input type="submit" id="sliceButton" name="sliceButton" value="sliceButton"></div> 
<!--显示裁剪后的图片--> 
< div><img id="sure" src="" style="cursor:hand" /></div> 
</body> 
</html>
PHP 相关文章推荐
MySQL相关说明
Jan 15 PHP
php自定义函数call_user_func和call_user_func_array详解
Jul 14 PHP
解析php中die(),exit(),return的区别
Jun 20 PHP
如何使用php输出时间格式
Aug 31 PHP
php生成QRcode实例
Sep 22 PHP
分享一段PHP制作的中文拼音首字母工具类
Dec 11 PHP
PHP连接MySQL数据的操作要点
Mar 20 PHP
php中preg_match的isU代表什么意思
Oct 01 PHP
php常用图片处理类
Mar 16 PHP
CI框架中$this-&gt;load-&gt;library()用法分析
May 18 PHP
利用php实现一周之内自动登录存储机制(cookie、session、localStorage)
Oct 31 PHP
php查看一个变量的占用内存的实例代码
Mar 29 PHP
phpmyadmin config.inc.php配置示例
Aug 27 #PHP
PHP自动生成后台导航网址的最佳方法
Aug 27 #PHP
PHP连接局域网MYSQL数据库的简单实例
Aug 26 #PHP
php读取excel文件的简单实例
Aug 26 #PHP
PHP中判断变量为空的几种方法分享
Aug 26 #PHP
PHP 如何利用phpexcel导入数据库
Aug 24 #PHP
php实现利用phpexcel导出数据
Aug 24 #PHP
You might like
PHP计算2点经纬度之间的距离代码
2013/08/12 PHP
ThinkPHP让分页保持搜索状态的方法
2014/07/02 PHP
两种php去除二维数组的重复项方法
2015/11/04 PHP
PHP实现的pdo连接数据库并插入数据功能简单示例
2019/03/30 PHP
js类型检查实现代码
2010/10/29 Javascript
jquery 实现窗口的最大化不论什么情况
2013/09/03 Javascript
异步动态加载js与css文件的js代码
2013/09/15 Javascript
jquery中使用循环下拉菜单示例代码
2014/09/24 Javascript
node.js中的fs.fsync方法使用说明
2014/12/15 Javascript
JavaScript生成的动态下雨背景效果实现方法
2015/02/25 Javascript
学习掌握JavaScript中this的使用技巧
2016/08/29 Javascript
实例介绍JavaScript中多种组合继承
2019/01/20 Javascript
使用Angular Cli如何创建Angular私有库详解
2019/01/30 Javascript
详解小程序input框失焦事件在提交事件前的处理
2019/05/05 Javascript
小程序实现列表倒计时功能
2021/01/29 Javascript
Python函数参数类型*、**的区别
2015/04/11 Python
浅析Python数据处理
2018/05/02 Python
Python简单计算给定某一年的某一天是星期几示例
2018/06/27 Python
python解压TAR文件至指定文件夹的实例
2019/06/10 Python
Python使用LDAP做用户认证的方法
2019/06/20 Python
Python爬虫实现的根据分类爬取豆瓣电影信息功能示例
2019/09/15 Python
Python list与NumPy array 区分详解
2019/11/06 Python
pytorch实现mnist分类的示例讲解
2020/01/10 Python
基于python实现破解滑动验证码过程解析
2020/05/28 Python
使用phonegap进行提示操作的具体方法
2017/03/30 HTML / CSS
美国专营婴幼儿用品的购物网站:buybuy BABY
2017/01/01 全球购物
物业保安员岗位职责制度
2014/01/30 职场文书
军训感想500字
2014/02/20 职场文书
2014年预备党员学习两会心得体会
2014/03/17 职场文书
公务员更新知识培训实施方案
2014/03/31 职场文书
教师职业道德事迹材料
2014/08/18 职场文书
入股协议书范本
2014/11/01 职场文书
2015年妇女工作总结
2015/05/14 职场文书
接触艺术对孩子学习思维有益
2019/08/06 职场文书
Python爬虫中urllib3与urllib的区别是什么
2021/07/21 Python
JavaScript 与 TypeScript之间的联系
2021/11/27 Javascript