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
DEDE采集大师官方留后门的删除办法
Jan 08 PHP
php jquery 多文件上传简单实例
Dec 23 PHP
php获取字段名示例分享
Mar 03 PHP
php使用PDO方法详解
Dec 27 PHP
如何使用纯PHP实现定时器任务(Timer)
Jul 31 PHP
PHP框架性能测试报告
May 08 PHP
深入理解PHP原理之执行周期分析
Jun 01 PHP
PHP在弹框中获取foreach中遍历的id值并传递给地址栏
Jun 13 PHP
PHP中16个高危函数整理
Sep 19 PHP
PHP封装请求类实例分析【基于Yii框架】
Oct 17 PHP
php反序列化长度变化尾部字符串逃逸(0CTF-2016-piapiapia)
Feb 15 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缓冲输出实例分析
2015/01/05 PHP
同一个表单 根据要求递交到不同页面的实现方法小结
2009/08/05 Javascript
javascript代码编写需要注意的7个小细节小结
2011/09/21 Javascript
裁剪字符串trim()自定义改进版
2013/04/10 Javascript
JavaScript Math.ceil() 函数使用介绍
2013/12/11 Javascript
JS判断客户端是手机还是PC的2个代码
2014/04/12 Javascript
JavaScript操作DOM元素的childNodes和children区别
2015/04/01 Javascript
JavaScript中的Repaint和Reflow用法详解
2015/07/27 Javascript
JavaScript原型及原型链终极详解
2016/01/04 Javascript
JS简单实现String转Date的方法
2016/03/02 Javascript
jQuery实例—选项卡的简单实现(js源码和jQuery)
2016/06/14 Javascript
javascript表单控件实例讲解
2016/09/13 Javascript
three.js实现围绕某物体旋转
2017/01/25 Javascript
Vue监听数组变化源码解析
2017/03/09 Javascript
Vue数组更新及过滤排序功能
2017/08/10 Javascript
基于JavaScript实现新增内容滚动播放效果附完整代码
2017/08/24 Javascript
使用JQuery自动完成插件Auto Complete详解
2019/06/18 jQuery
小程序简单两栏瀑布流效果的实现
2019/12/18 Javascript
Vue proxyTable配置多个接口地址,解决跨域的问题
2020/09/11 Javascript
[18:32]DOTA2 HEROS教学视频教你分分钟做大人-谜团
2014/06/12 DOTA
json跨域调用python的方法详解
2017/01/11 Python
python引入导入自定义模块和外部文件的实例
2017/07/24 Python
Python进阶之自定义对象实现切片功能
2019/01/07 Python
Python实战之制作天气查询软件
2019/05/14 Python
termux中matplotlib无法显示中文问题的解决方法
2021/01/11 Python
python 实现图片裁剪小工具
2021/02/02 Python
python链表类中获取元素实例方法
2021/02/23 Python
一款纯css3实现的竖形二级导航的实例教程
2014/12/11 HTML / CSS
利用html5的websocket实现websocket聊天室
2013/12/12 HTML / CSS
h5调用摄像头的实现方法
2016/06/01 HTML / CSS
为什么要使用servlet
2016/01/17 面试题
阳光体育活动方案
2014/02/16 职场文书
人事部专员岗位职责
2014/03/04 职场文书
保护母亲河倡议书
2014/04/14 职场文书
委托代理人授权委托书范本
2014/09/24 职场文书
习总书记三严三实学习心得体会
2014/10/13 职场文书