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伪造referer实例代码
Sep 20 PHP
PHP表单验证的3个函数ISSET()、empty()、is_numeric()的使用方法
Aug 22 PHP
thinkphp实现like模糊查询实例
Oct 29 PHP
php下foreach提示Warning:Invalid argument supplied for foreach()的解决方法
Nov 11 PHP
PHP版QQ互联OAuth示例代码分享
Jul 05 PHP
PHP获取IP地址所在地信息的实例(使用纯真IP数据库qqwry.dat)
Nov 15 PHP
PHP面向对象程序设计高级特性详解(接口,继承,抽象类,析构,克隆等)
Dec 02 PHP
php写入txt乱码的解决方法
Sep 17 PHP
php利用ZipArchive类操作文件的实例
Jan 21 PHP
PHP大文件及断点续传下载实现代码
Aug 18 PHP
php提高脚本性能的4个技巧
Aug 18 PHP
php 原生分页
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
php中cookie的作用域
2008/03/27 PHP
使用swoole扩展php websocket示例
2014/02/13 PHP
iis6手工创建网站后无法运行php脚本的解决方法
2017/06/08 PHP
laravel 中如何使用ajax和vue总结
2017/08/16 PHP
PHP共享内存使用与信号控制实例分析
2018/05/09 PHP
表单项的name命名为submit、reset引起的问题
2007/12/22 Javascript
Jquery 的扩展方法总结
2011/10/01 Javascript
获取客户端电脑日期时间js代码(jquery)
2012/09/12 Javascript
一个可拖拽列宽表格实例演示
2012/11/26 Javascript
js 点击页面其他地方关闭弹出层(示例代码)
2013/12/24 Javascript
jQuery中prev()方法用法实例
2015/01/08 Javascript
jQuery点击按钮弹出遮罩层且内容居中特效
2015/12/14 Javascript
JavaScript知识点总结之如何提高性能
2016/01/15 Javascript
JQuery Mobile实现导航栏和页脚
2016/03/09 Javascript
关于网页中的无缝滚动的js代码
2016/06/09 Javascript
JS使用正则表达式过滤多个词语并替换为相同长度星号的方法
2016/08/03 Javascript
JS中this上下文对象使用方式
2016/10/09 Javascript
vue中用动态组件实现选项卡切换效果
2017/03/25 Javascript
xmlplus组件设计系列之文本框(TextBox)(3)
2017/05/03 Javascript
import与export在node.js中的使用详解
2017/09/28 Javascript
利用pm2部署多个node.js项目的配置教程
2017/10/22 Javascript
关于axios如何全局注册浅析
2018/01/14 Javascript
Node使用Selenium进行前端自动化操作的代码实现
2019/10/10 Javascript
JavaScript前端实现压缩图片功能
2020/03/06 Javascript
[01:03:09]完美世界DOTA2联赛PWL S2 Forest vs SZ 第二场 11.25
2020/11/26 DOTA
python 基础教程之Map使用方法
2017/01/17 Python
基于Python3 逗号代码 和 字符图网格(详谈)
2017/06/22 Python
利用pyecharts读取csv并进行数据统计可视化的实现
2020/04/17 Python
造型师求职自荐信
2013/09/27 职场文书
教学评估实施方案
2014/03/16 职场文书
学校安全防火方案
2014/06/07 职场文书
名人演讲稿范文
2014/09/16 职场文书
卫生主题班会
2015/08/14 职场文书
八年级历史教学反思
2016/02/19 职场文书
只用50行Python代码爬取网络美女高清图片
2021/06/02 Python
SQL优化老出错,那是你没弄明白MySQL解释计划用法
2021/11/27 MySQL