Ajax+PHP边学边练 之五 图片处理


Posted in PHP onDecember 03, 2009

先上个效果图:

Ajax+PHP边学边练 之五 图片处理 
Sample6_1.php 中创建Form:

//显示上传状态和图片 
<div id="showimg"></div> 
//上传文件需要定义enctype,为了显示图片将target设为uploadframe 
<form id="uploadform" action="process_upload.php" method="post" 
enctype="multipart/form-data" target="uploadframe"> 
Upload a File:<br /> 
<input type="file" id="myfile" name="myfile" /> 
//上传文件 
<input type="submit" value="Submit" onclick="uploadimg(document.getElementById('uploadform')); return false;" /> 
<iframe id="uploadframe" name="uploadframe" src="process_upload.php" class="noshow"></iframe> 
</form>

上传图片函数 uploadimg:
function uploadimg(theform){ 
//提交Form 
theform.submit(); 
//在showimg <div>中显示上传状态 
setStatus ("Loading...","showimg"); 
} 
//上传状态函数 
function setStatus (theStatus, theObj){ 
obj = document.getElementById(theObj); 
if (obj){ 
obj.innerHTML = "<div class=\"bold\">" + theStatus + "</div>"; 
} 
}

process_upload.php 提供文件上传功能:
<?php 
//提供图片类型校验 
$allowedtypes = array("image/jpeg","image/pjpeg","image/png", "image/x-png","image/gif"); 
//文件存放目录 
$savefolder = "images"; //如果有文件上传就开始干活 
if (isset ($_FILES['myfile'])){ 
//检查上传文件是否符合$allowedtypes类型 
if (in_array($_FILES['myfile']['type'],$allowedtypes)){ 
if ($_FILES['myfile']['error'] == 0){ 
$thefile = "$savefolder/".$_FILES['myfile']['name']; 
//通过move_uploaded_file上传文件 
if (!move_uploaded_file($_FILES['myfile']['tmp_name'], $thefile)){ 
echo "There was an error uploading the file."; 
} 
else{ 
?> 
<!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> 
<script type="text/javascript" src="functions.js"></script> 
</head> 
<body> 
<!-- 显示图片 --> 
<img src="<?php echo $thefile; ?>" onload="doneloading(parent,'<?php echo $thefile; ?>')" /> 
</body> 
</html> 
<?php 
} 
} 
} 
} 
?>

上面代码最后部分的doneloading 函数就是用来显示图片及修改图片尺寸大小。其中会用到thumb.php,它会在images目录中生成出源图片的大、中、小三个尺寸,有兴趣可以研究一下。欢迎大家拍砖~
文中源码打包下载
PHP 相关文章推荐
php下利用curl判断远程文件是否存在的实现代码
Oct 08 PHP
深入理解require与require_once与include以及include_once的区别
Jun 05 PHP
ThinkPHP快速入门实例教程之数据分页
Jul 01 PHP
2014最热门的24个php类库汇总
Dec 18 PHP
yii2中添加验证码的实现方法
Jan 09 PHP
jquery不支持toggle()高(新)版本的问题解决
Sep 24 PHP
PHP yii实现model添加默认值的方法(两种方法)
Nov 10 PHP
php 5.4 全新的代码复用Trait详解
Jan 05 PHP
Yii2-GridView 中让关联字段带搜索和排序功能示例
Jan 21 PHP
thinkPHP实现的联动菜单功能详解
May 05 PHP
PHP实现深度优先搜索算法(DFS,Depth First Search)详解
Sep 16 PHP
不常用但很实用的PHP预定义变量分析
Jun 25 PHP
PHPMyadmin 配置文件详解(配置)
Dec 03 #PHP
又一个php 分页类实现代码
Dec 03 #PHP
php 无限分类的树类代码
Dec 03 #PHP
php zip文件解压类代码
Dec 02 #PHP
PHP5 面向对象(学习记录)
Dec 02 #PHP
php smarty模版引擎中的缓存应用
Dec 02 #PHP
php 一元分词算法
Nov 30 #PHP
You might like
解析php中eclipse 用空格替换 tab键
2013/06/24 PHP
PHP中的output_buffering详细介绍
2014/09/27 PHP
php浏览历史记录的方法
2015/03/10 PHP
php动态函数调用方法
2015/05/21 PHP
phpinfo()中Loaded Configuration File(none)的解决方法
2017/01/16 PHP
理清PHP在Linxu下执行时的文件权限方法
2017/06/07 PHP
Thinkphp5框架ajax接口实现方法分析
2019/08/28 PHP
js判断输入是否为正整数、浮点数等数字的函数代码
2010/11/17 Javascript
判断对象是否Window的实现代码
2012/01/10 Javascript
node.js中的fs.chmod方法使用说明
2014/12/18 Javascript
nodejs爬虫抓取数据乱码问题总结
2015/07/03 NodeJs
jQuery下拉框的简单应用
2016/06/24 Javascript
AngularJS基础 ng-csp 指令详解
2016/08/01 Javascript
浅谈js在html中的加载执行顺序,多个jquery ready执行顺序
2016/11/26 Javascript
基于jPlayer三分屏的制作方法
2016/12/21 Javascript
AngularJS $http模块POST请求实现
2017/04/08 Javascript
关于meta viewport中target-densitydpi属性详解(推荐)
2017/08/18 Javascript
javascript中的event loop事件循环详解
2018/12/14 Javascript
vue-router的两种模式的区别
2019/05/30 Javascript
JavaScript canvas实现雨滴特效
2021/01/10 Javascript
Flask 让jsonify返回的json串支持中文显示的方法
2018/03/26 Python
python list元素为tuple时的排序方法
2018/04/18 Python
wxpython绘制圆角窗体
2019/11/18 Python
使用python-opencv读取视频,计算视频总帧数及FPS的实现
2019/12/10 Python
Django数据统计功能count()的使用
2020/11/30 Python
澳大利亚儿童和婴儿产品在线商店:Lime Tree Kids
2017/10/05 全球购物
工商管理专业学生的自我评价
2013/10/01 职场文书
走进敬老院活动总结
2014/07/10 职场文书
船舶工程技术专业求职信
2014/08/07 职场文书
我是一名护士演讲稿
2014/08/28 职场文书
2014年幼儿园小班工作总结
2014/12/04 职场文书
初二数学教学反思
2016/02/17 职场文书
导游词之太湖
2019/10/08 职场文书
仅用一句SQL更新整张表的涨跌幅、涨跌率的解决方案
2021/05/06 MySQL
分布式锁为什么要选择Zookeeper而不是Redis?看完这篇你就明白了
2021/05/21 Redis
nginx rewrite功能使用场景分析
2022/05/30 Servers