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 相关文章推荐
用ODBC的分页显示
Oct 09 PHP
php中的实现trim函数代码
Mar 19 PHP
PHP 面向对象 final类与final方法
May 05 PHP
提高PHP编程效率的53个要点(经验小结)
Sep 04 PHP
页面乱码问题的根源及其分析
Aug 09 PHP
php var_export与var_dump 输出的不同
Aug 09 PHP
php判断ip黑名单程序代码实例
Feb 24 PHP
简单谈谈favicon
Jun 10 PHP
php使用COPY函数更新配置文件的方法
Jun 18 PHP
php结合正则获取字符串中数字
Jun 19 PHP
php判断是否为ajax请求的方法
Nov 29 PHP
PHP实现将优酷土豆腾讯视频html地址转换成flash swf地址的方法
Aug 04 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获取从百度搜索进入网站的关键词的详细代码
2014/01/08 PHP
Discuz!X中SESSION机制实例详解
2015/09/23 PHP
php 数组元素快速去重
2017/05/05 PHP
CodeIgniter框架钩子机制实现方法【hooks类】
2018/08/21 PHP
javascript options属性集合操作代码
2009/12/28 Javascript
javascript框架设计读书笔记之种子模块
2014/12/02 Javascript
JavaScript实现按照指定长度为数字前面补零输出的方法
2015/03/19 Javascript
JavaScript判断数组是否包含指定元素的方法
2015/07/01 Javascript
JavaScript仿支付宝密码输入框
2015/12/29 Javascript
js为什么不能正确处理小数运算?
2015/12/29 Javascript
js去字符串前后空格的实现方法
2016/02/26 Javascript
Javascript之Number对象介绍
2016/06/07 Javascript
只需五句话搞定JavaScript作用域(经典)
2016/07/26 Javascript
纯JS打造网页中checkbox和radio的美化效果
2016/10/13 Javascript
微信小程序开发之圆形菜单 仿建行圆形菜单实例
2016/12/12 Javascript
BootStrap实现轮播图效果(收藏)
2016/12/30 Javascript
jQuery实现动态给table赋值的方法示例
2017/07/04 jQuery
JS库particles.js创建超炫背景粒子插件(附源码下载)
2017/09/13 Javascript
vue移动UI框架滑动加载数据的方法
2018/03/12 Javascript
浅谈Express.js解析Post数据类型的正确姿势
2019/05/30 Javascript
如何利用nodejs实现命令行游戏
2020/11/24 NodeJs
Vue实现todo应用的示例
2021/02/20 Vue.js
[01:24:16]2018DOTA2亚洲邀请赛 4.6 全明星赛
2018/04/10 DOTA
python网络编程学习笔记(六):Web客户端访问
2014/06/09 Python
python爬虫获取多页天涯帖子
2018/02/23 Python
python编写微信公众号首图思路详解
2019/12/13 Python
python 双循环遍历list 变量判断代码
2020/05/04 Python
python中lower函数实现方法及用法讲解
2020/12/23 Python
HTML5之tabindex属性全面解析
2016/07/07 HTML / CSS
印尼最大的在线购物网站:MatahariMall.com
2016/08/26 全球购物
幼儿园小班家长评语
2014/12/30 职场文书
Spring Data JPA的Audit功能审计数据库的变更
2021/06/26 Java/Android
html+css实现环绕倒影加载特效
2021/07/07 HTML / CSS
Vue组件更新数据v-model不生效的解决
2022/04/02 Vue.js
漫画《尖帽子的魔法工坊》宣布动画化
2022/04/06 日漫
SpringBoot详解整合Redis缓存方法
2022/07/15 Java/Android