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 方便水印和缩略图的图形类
May 21 PHP
windows下zendframework项目环境搭建(通过命令行配置)
Dec 06 PHP
解析smarty 截取字符串函数 truncate的用法介绍
Jun 20 PHP
php实现计数器方法小结
Jan 05 PHP
PHP超全局数组(Superglobals)介绍
Jul 01 PHP
PHP使用token防止表单重复提交的方法
Apr 07 PHP
PHP数组函数知识汇总
May 12 PHP
针对多用户实现头像上传功能PHP代码 适用于登陆页面制作
Aug 17 PHP
php版微信自动登录并获取昵称的方法
Sep 23 PHP
浅谈php中fopen不能创建中文文件名文件的问题
Feb 06 PHP
php利用ob_start()清除输出和选择性输出的方法
Jan 18 PHP
php curl获取https页面内容,不直接输出返回结果的设置方法
Jan 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
用cookies来跟踪识别用户
2006/10/09 PHP
PHP入门速成教程
2007/03/19 PHP
PHP缩略图等比例无损压缩,可填充空白区域补充色
2011/06/10 PHP
基于php使用memcache存储session的详解
2013/06/25 PHP
解析如何去掉CodeIgniter URL中的index.php
2013/06/25 PHP
php另类上传图片的方法(PHP用Socket上传图片)
2013/10/30 PHP
4种PHP异步执行的常用方式
2015/12/24 PHP
php注册审核重点解析(数据访问)
2017/05/23 PHP
PHP设计模式之工厂模式(Factory Pattern)的讲解
2019/03/21 PHP
再谈IE中Flash控件的自动激活 ObjectWrap
2007/03/09 Javascript
javascript web对话框与弹出窗口
2009/02/22 Javascript
js调用AJAX时Get和post的乱码解决方法
2013/06/04 Javascript
JavaScript计时器用法分析【setTimeout和clearTimeout】
2017/01/18 Javascript
利用NPM淘宝的node.js镜像加速nvm
2017/03/27 Javascript
JavaScript该如何学习 怎样轻松学习JavaScript
2017/06/12 Javascript
jquery.rotate.js实现可选抽奖次数和中奖内容的转盘抽奖代码
2017/08/23 jQuery
JavaScript封闭函数及常用内置对象示例
2019/05/13 Javascript
vue实现滑动切换效果(仅在手机模式下可用)
2020/06/29 Javascript
jQuery实现每日秒杀商品倒计时功能
2019/09/06 jQuery
Js代码中的span拼接问题解决
2019/11/22 Javascript
[54:53]完美世界DOTA2联赛PWL S2 GXR vs PXG 第二场 11.18
2020/11/18 DOTA
python ElementTree 基本读操作示例
2009/04/09 Python
python利用beautifulSoup实现爬虫
2014/09/29 Python
python使用socket向客户端发送数据的方法
2015/04/29 Python
使用python生成目录树
2018/03/29 Python
基于树莓派的语音对话机器人
2019/06/17 Python
python设置环境变量的作用整理
2020/02/17 Python
Python函数调用追踪实现代码
2020/11/27 Python
生物技术专业研究生自荐信
2013/09/22 职场文书
美术兴趣小组活动总结
2014/07/07 职场文书
学习型党组织心得体会
2014/09/12 职场文书
个人总结与自我评价
2015/02/14 职场文书
中学生勤俭节约倡议书
2015/04/29 职场文书
幼儿园见习总结
2015/06/23 职场文书
小学生组织委员竞选稿
2015/11/21 职场文书
防止web项目中的SQL注入
2021/12/06 MySQL