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 在线打包_支持子目录
Jun 28 PHP
PHP系列学习之日期函数使用介绍
Aug 18 PHP
解析PHP提交后跳转
Jun 23 PHP
PHP采用get获取url汉字出现乱码的解决方法
Nov 13 PHP
php+mysql结合Ajax实现点赞功能完整实例
Jan 30 PHP
PHP函数import_request_variables()用法分析
Apr 02 PHP
PHP获取不了React Native Fecth参数的解决办法
Aug 26 PHP
基于thinkPHP类的插入数据库操作功能示例
Jan 06 PHP
PHP实现驼峰样式字符串(首字母大写)转换成下划线样式字符串的方法示例
Aug 10 PHP
php二维码生成以及下载实现
Sep 28 PHP
实例分析PHP中PHPMailer发邮件
Dec 13 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强制下载类型的实现代码
2011/04/21 PHP
php中可能用来加密字符串的函数[base64_encode、urlencode、sha1]
2012/01/16 PHP
PHP实现的redis主从数据库状态检测功能示例
2017/07/20 PHP
PHP convert_cyr_string()函数讲解
2019/02/13 PHP
JavaScript CSS菜单功能 改进版
2008/12/20 Javascript
url 编码 js url传参中文乱码解决方案
2010/04/11 Javascript
JavaScript自动设置IFrame高度的小例子
2013/06/08 Javascript
Javascript脚本实现静态网页加密实例代码
2013/11/05 Javascript
JavaScript中函数(Function)的apply与call理解
2015/07/08 Javascript
Javascript基于对象三大特性(封装性、继承性、多态性)
2016/01/04 Javascript
js清除浏览器缓存的几种方法
2017/03/15 Javascript
详解IWinter 一个路由转控制器的 Nodejs 库
2017/11/15 NodeJs
element ui table(表格)实现点击一行展开功能
2018/12/04 Javascript
详解vue中axios的使用与封装
2019/03/20 Javascript
vue实现移动端项目多行文本溢出省略
2020/07/29 Javascript
微信小程序对图片进行canvas压缩的方法示例详解
2020/11/12 Javascript
[02:40]DOTA2超级联赛专访430 从小就爱玩对抗性游戏
2013/06/18 DOTA
[02:06]2018完美世界全国高校联赛秋季赛开始报名(附彩蛋)
2018/09/03 DOTA
python在windows和linux下获得本机本地ip地址方法小结
2015/03/20 Python
用Python生成器实现微线程编程的教程
2015/04/13 Python
Python实现购物程序思路及代码
2017/07/24 Python
Python实现购物车程序
2018/04/16 Python
Python单元测试简单示例
2018/07/03 Python
解决pyqt5中QToolButton无法使用的问题
2019/06/21 Python
python 使用openpyxl读取excel数据
2021/02/18 Python
canvas探照灯效果的示例代码
2018/11/30 HTML / CSS
应届生人事助理求职信
2013/11/09 职场文书
保险公司年会主持词
2014/03/22 职场文书
四风问题专项整治工作情况报告
2014/10/28 职场文书
2014年物流工作总结
2014/11/25 职场文书
2014年艾滋病防治工作总结
2014/12/10 职场文书
婚姻出轨保证书
2015/05/08 职场文书
2015年党建工作汇报材料
2015/06/25 职场文书
Java版 简易五子棋小游戏
2022/05/04 Java/Android
mysql性能优化以及配置连接参数设置
2022/05/06 MySQL
JS前端使用canvas实现物体的点选示例
2022/08/05 Javascript