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目录中生成出源图片的大、中、小三个尺寸,有兴趣可以研究一下。欢迎大家拍砖~
文中源码打包下载

(0)

相关推荐

  • PHPThumb图片处理实例

    下载地址(github.com/masterexploder/PHPThumb).注意这个类库有一个重名的叫phpThumb,只是大小写的差别,所以查找文档的时候千万注意.在网站建设过程中,需要处理图片的地方多不胜数,用PHP的图片函数处理图片,十分繁琐.而且对新手来讲十分不好掌握.现在我们可以用PHPThumb类库来处理图片,包括,图片尺寸调整,图片截取,图片加水印,图片旋转等等功能. 使用演示: 复制代码 代码如下: //加载类库文件require_once 'path/to/ThumbLi

  • PHP图片处理之使用imagecopyresampled函数裁剪图片例子

    图片裁剪是指在一个大的背景图片中裁剪出一张指定区域的图片,常见的应用是在用户设置个人头像时,可以从上传的图片中,裁剪出一个合适的区域作为自己的个人头像图片.图像裁剪和图片缩放的相似,所以也是借助imagecopyresampled()函数去实现这个功能.同样也是以JPEG图片格式为例,声明一个图像裁剪函数cut(),代码如下所示: 复制代码 代码如下: <?php     //在一个大的背景图片中裁剪出指定区域的图片,以jpeg图片格式为例     function cut($filename,

  • PHP图片处理之使用imagecopyresampled函数实现图片缩放例子

    网站优化不能只定在代码上,内容也是网站最需要优化的对象之一,而图像又是网站中最主要的内容.图像的优化最需要处理的就是将所有上传到网站中的大图片自动缩放称小图(在网页中大小够用就行),以减少N倍的存储空间,并提高下载浏览的速度.所以图片缩放成一个动态网站必须要处理的任务,经常和文件上传绑定在一起工作,能在上传图片的同时就调整其大小.当然有时也需要单独处理图片缩放,例如在做图片列表时,如果直接用大图而在显示时才将其缩放成小图,这样做不仅下载速度会变慢,也会降低页面响应时间.通常遇到这样的应用都是在上

  • PHP图片处理之图片旋转和图片翻转实例

    图片的旋转和翻转也是Web项目中比较常见的功能,但这是两个不同的概念,图片的旋转是按特定的角度来转动图片,而图片的翻转则是将图片的内容按特定的方向对调.图片翻转需要自己编写函数来实现,而旋转图片则可以直接借助GD库中提供的imagerotate()函数完成.该函数的原型如下所示: 复制代码 代码如下: resource  imagerotate(resource src_im ,    float angle,    int bgd_color    [,int ignore_transpatr

  • php多功能图片处理类分享(php图片缩放类)

    复制代码 代码如下: <?php    /**   *  基本图片处理,用于完成图片缩入,水印添加   *  当水印图超过目标图片尺寸时,水印图能自动适应目标图片而缩小   *  水印图可以设置跟背景的合并度  */ /*   使用方法:       自动裁切:       程序会按照图片的尺寸从中部裁切最大的正方形,并按目标尺寸进行缩略 $t--->setSrcImg("img/test.jpg");       $t->setCutType(1);//这一句就OK

  • 分享php多功能图片处理类

    本文实例为大家分享了多功能php图片处理类,供大家参考,具体内容如下 <?php /** * Image.class.php 图像处理类 * @author Administrator * */ class Image{ private $path=''; /** * 构造方法 * @param unknown $path */ function __construct($path=''){ if (!empty($path)) { $this->path=$path; } } /** +--

  • PHP图片处理类 phpThumb参数用法介绍

    phpThumb几个基本参数 一些有用的参数列一下: src:目标图片的地址 w:输出图片的宽度 h:输出图片的高度(如果不指定他将按w参数等比缩放) q:输出如果是JPG格式的,可以规定它的输出质量 bg:输出时的背景(如果需要) sw.sh.sx.sy:局部输出,宽高.起始位置 f:输出格式,可以为jpeg.png.gif.ico sfn:输出gif动画中的某一帧 fltr[]:滤镜,可以有很多效果,包括锐化.模糊.旋翻转.水印.边框.遮照.色彩调整等 更多效果可以参看官方例程: http:

  • PHP图片处理之图片背景、画布操作

    像验证码或根据动态数据生成统计图标,以及前面介绍的一些GD库操作等都属于动态绘制图像.而在web开发中,也会经常去处理服务器中已存在的图片.例如,根据一些需求对图片进行缩放.加水印.裁剪.翻转和旋转等改图的操作.在web应用中,经常使用的图片格式有GIF.JPEG和PNG中的一种或几种,当然GD库也可以处理其他格式的图片,但都很少用到.所以安装GD库时,至少安装GIF.JPEG或PNG三种格式中的一种. 在前面介绍的画布管理中,使用imagecreate()和imageCreateTrueCol

  • PHP图片处理之使用imagecopy函数添加图片水印实例

    为图片添加水印也是图片处理中常见的功能.因为只要在页面中见到的图片都可以很轻松地拿到,你辛辛苦苦编辑的图片不想被别人不费吹灰之力拿走就用,所以为图片添加水印以确定版权,防止图片被盗用.制作水印可以使用文字(公司名称加网址),也可以使用图片(公司LOGO),图片水印效果更好一些,因为可以通过一些做图片软件进行美化.使用文字做水印,只需要在图片上画一些文字即可.如果制作图片水印,就需要先了解一下GD库中的imagecopy()函数,能复制图片的一部分.该函数的原型如下所示: 复制代码 代码如下: b

  • php图片处理:加水印、缩略图的实现(自定义函数:watermark、thumbnail)

    废话不说了,贴代码: 复制代码 代码如下: <?php /************************************ //函数: watermark($bigimg, $smallimg, $coord = 1) //作用: 添加水印 //参数: $bigimg 必选.大图片--要加上水印的图片 $smallimg 必选.小图片 $coord 可选.水印在大图中的位置, 1 左上角: 2 右上角: 3 右下角: 4 左下角: 5 中间 //示例: watermark('datu.p

随机推荐