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新手上路(十二)
Oct 09 PHP
php self,$this,const,static,-&amp;gt;的使用
Oct 22 PHP
基于PHP对XML的操作详解
Jun 07 PHP
php 获取本地IP代码
Jun 23 PHP
PHP时间和日期函数详解
May 08 PHP
PHP-FPM之Chroot执行环境详解
Aug 03 PHP
PHP编写RESTful接口
Feb 23 PHP
php使用number_format函数截取小数的方法分析
May 27 PHP
php封装的表单验证类完整实例
Oct 19 PHP
10个值得深思的PHP面试题
Nov 14 PHP
php提取微信账单的有效信息
Oct 01 PHP
基于PHP实现短信验证码发送次数限制
Jul 11 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实现打包zip并下载功能
2018/06/12 PHP
Laravel 6.2 中添加了可调用容器对象的方法
2019/10/22 PHP
Domino中运用jQuery读取视图内容的方法
2009/10/21 Javascript
WEB 浏览器兼容 推荐收藏
2010/05/14 Javascript
Javascript自定义排序 node运行 实例
2013/06/05 Javascript
JQuery页面图片切换和新闻列表滚动效果的具体实现
2013/09/26 Javascript
原生JS实现加入收藏夹的代码
2013/10/24 Javascript
jquery中插件实现自动添加用户的具体代码
2013/11/15 Javascript
Jquery在指定DIV加载HTML示例代码
2014/02/17 Javascript
JavaScript开发人员的10个关键习惯小结
2014/12/05 Javascript
AngularJS iframe跨域打开内容时报错误的解决办法
2015/01/26 Javascript
js实现具有高亮显示效果的多级菜单代码
2015/09/01 Javascript
JavaScript实现ASC转汉字及汉字转ASC的方法
2016/01/23 Javascript
jquery实现无刷新验证码的简单实例
2016/05/19 Javascript
js监听键盘事件的方法_原生和jquery的区别详解
2016/10/10 Javascript
javascript常用的设计模式
2017/02/09 Javascript
原生JS实现圆环拖拽效果
2017/04/07 Javascript
vue中的scope使用详解
2017/10/29 Javascript
一个Vue页面的内存泄露分析详解
2018/06/25 Javascript
vue2.0移动端滑动事件vue-touch的实例代码
2018/11/27 Javascript
微信打开网址添加在浏览器中打开提示的办法
2019/05/20 Javascript
Vue通过for循环随机生成不同的颜色或随机数的实例
2019/11/09 Javascript
使用preload预加载页面资源时注意事项
2020/02/03 Javascript
原生javascript如何实现共享onload事件
2020/07/03 Javascript
vue项目中js-cookie的使用存储token操作
2020/11/13 Javascript
python抽取指定url页面的title方法
2018/05/11 Python
PyQt弹出式对话框的常用方法及标准按钮类型
2019/02/27 Python
纽约的奢华内衣店:Journelle
2016/07/29 全球购物
Meli Melo官网:名媛们钟爱的英国奢侈手包品牌
2017/04/17 全球购物
英国哈罗德园艺:Harrod Horticultural
2020/03/31 全球购物
心得体会怎么写
2013/12/30 职场文书
考试违纪检讨书
2014/02/02 职场文书
鼓励运动员的广播稿
2014/02/08 职场文书
护理见习报告范文
2014/11/03 职场文书
支行行长竞聘报告
2014/11/06 职场文书
oracle DGMGRL ORA-16603报错的解决方法(DG Broker)
2021/04/06 Oracle