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
smarty 缓存控制前的页面静态化原理
Mar 15 PHP
解决phpmyadmin中缺少mysqli扩展问题的方法
May 06 PHP
Youku 视频绝对地址获取的方法详解
Jun 26 PHP
浅谈php+phpStorm+xdebug配置方法
Sep 17 PHP
php禁用函数设置及查看方法详解
Jul 25 PHP
浅谈php数组array_change_key_case() 函数和array_chunk()函数
Oct 22 PHP
详解thinkphp实现excel数据的导入导出(附完整案例)
Dec 29 PHP
php实现文件与16进制相互转换的方法示例
Feb 16 PHP
PHP命名空间与自动加载机制的基础介绍
Aug 25 PHP
Cookie跨域问题解决方案代码示例
Nov 24 PHP
php 解析非标准json、非规范json
Apr 01 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
法国:浪漫之都的咖啡文化
2021/03/03 咖啡文化
使用网络地址转换实现多服务器负载均衡
2006/10/09 PHP
phpmyadmin显示utf8_general_ci中文乱码的问题终级篇
2013/04/08 PHP
ThinkPHP3.1新特性之命名范围的使用
2014/06/19 PHP
laravel框架实现为 Blade 模板引擎添加新文件扩展名操作示例
2020/01/25 PHP
Jquery截取中文字符串的实现代码
2010/12/22 Javascript
父子窗体间传递JSON格式的数据的代码
2010/12/25 Javascript
js中根据字数截取字符串,不能截断url
2012/01/12 Javascript
nodejs中实现阻塞实例
2015/03/24 NodeJs
使用jquery制作弹出框效果
2015/04/03 Javascript
浅谈jQuery双事件多重加载的问题
2016/10/05 Javascript
jQuery实现限制文本框的输入长度
2017/01/11 Javascript
nodejs搭建本地http服务器教程
2017/03/13 NodeJs
详谈js遍历集合(Array,Map,Set)
2017/04/06 Javascript
使用Vue如何写一个双向数据绑定(面试常见)
2018/04/20 Javascript
vue中element 上传功能的实现思路
2018/07/06 Javascript
详解如何在微信小程序开发中正确的使用vant ui组件
2018/09/13 Javascript
Javascript实现鼠标点击冒泡特效
2019/12/24 Javascript
vue 使用v-for进行循环的实例代码详解
2020/02/19 Javascript
[02:34]2016完美“圣”典风云人物:BurNIng专访
2016/12/10 DOTA
Python continue语句用法实例
2014/03/11 Python
搞笑的程序猿:看看你是哪种Python程序员
2015/06/12 Python
Python数学形态学实例分析
2019/09/06 Python
解决Jupyter因卸载重装导致的问题修复
2020/04/10 Python
pycharm第三方库安装失败的问题及解决经验分享
2020/05/09 Python
python中的split、rsplit、splitlines用法说明
2020/10/23 Python
Python+OpenCV图像处理——实现轮廓发现
2020/10/23 Python
德国化妆品和天然化妆品网上商店:kosmetikfuchs.de
2017/06/09 全球购物
Amcal中文官网:澳洲综合性连锁药房
2019/03/28 全球购物
世界上最受欢迎的花店:1-800-Flowers.com
2020/06/01 全球购物
简述数组与指针的区别
2014/01/02 面试题
汽车电子与维修专业大学生求职信
2013/09/28 职场文书
沈阳故宫导游词
2015/01/31 职场文书
风之谷观后感
2015/06/11 职场文书
Python中Schedule模块使用详解 周期任务神器
2022/04/19 Python
Python 匹配文本并在其上一行追加文本
2022/05/11 Python