当前位置: 首页 > 图文教程 > 网络编程 > PHP > PHP实例:上传多个图片并校验的代码

PHP
PHP新手总结的PHP基础知识
php实现gb2312和unicode间编码转换
用php语言实现数据库连接详细代码介绍
详细解析 PHP 向 MySQL 发送数据过程
利用PHP V5开发多任务应用程序
详细讲解PHP中缓存技术的应用
php escapeshellcmd多字节编码漏洞
《PHP设计模式介绍》导言
《PHP设计模式介绍》第一章 编程惯用法
《PHP设计模式介绍》第二章 值对象模式
《PHP设计模式介绍》第三章 工厂模式
《PHP设计模式介绍》第四章 单件模式
《PHP设计模式介绍》第五章 注册模式
《PHP设计模式介绍》第六章 伪对象模式
《PHP设计模式介绍》第七章 策略模式
《PHP设计模式介绍》第八章 迭代器模式
《PHP设计模式介绍》第九章 观测模式
《PHP设计模式介绍》第十章 规范模式
《PHP设计模式介绍》第十一章 代理模式
《PHP设计模式介绍》第十二章 装饰器模式

PHP实例:上传多个图片并校验的代码


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-08-14   浏览: 175 ::
收藏到网摘: n/a

单张的图片上传是不复杂的,这里涉及到多张图片上传和对图片格式的校验,保证上传的一定是图片,防止上传其他文件到服务器。


基本实现算法是使用数组的形式,把所有的图片提交个一个数组,对数组的元素进行一个个的处理。

<?php

Webjx.Com


// 图片目录
$img_dir = "../upload/";
// …… html 显示上传界面 Webjx.Com

/* 图片上传处理 */
// 把图片传到服务器
// 初始化变量

$uploaded = 0;
$unuploaded = 0;


//只允许五张图片上传

网页教学网

for ($i=0; $i<=5; $i++)
{
       //获取当前图片的信息
$is_file = $_FILES['imgfile']['name'][$i];
//如果当前图片不为空
       if (!empty($is_file))
       {
              //把当前图片的信息存储到变量里
              $result[$i] = "
                            <tr class=td2 align=center>
                            <td>". $_FILES['imgfile']['name'][$i] ."</td>
                            <td>". round($_FILES['imgfile']['size'][$i]/1024, 2) ."K</td>
                            <td>". $_FILES['imgfile']['type'][$i] ."</td>
                            <td>";

网页教学网


              // 判断上传的图片的类型是不是jpg,gif,png,bmp中的一种,同时判断是否上传成功
              if (

Webjx.Com

                     $_FILES['imgfile']['type'][$i] == "image/pjpeg"   ||
                     $_FILES['imgfile']['type'][$i] == "image/gif"     ||
                     $_FILES['imgfile']['type'][$i] == "image/x-png"   ||
                     $_FILES['imgfile']['type'][$i] == "image/bmp"
                 )
              {
                     //如果上传的文件没有在服务器上存在

网页教学网

                     if (!file_exists($img_dir . $_FILES['imgfile']['name'][$i]))
                     {
                            //把图片文件从临时文件夹中转移到我们指定上传的目录中
                            move_uploaded_file($_FILES['imgfile']['tmp_name'][$i],
      $img_dir . $_FILES['imgfile']['name'][$i]);
                            $result[$i] .= "成功";

                            $uploaded++;
                     }
                     else         //如果文件已经在服务器上存在
                     {
                            $result[$i] .= "<font color=red>文件已存在</font>";
                            $unuploaded++;


                            continue;
                     }
              }
              else
              {
                     $result[$i] .= "<font color=red>失败</font>";
                     $unuploaded++;
              }
              $result[$i] .= "</td></tr>";
       } //end if
} // end for
 

// 如果没有选择任何图片
if (empty($result))
{
       prompt_msg("错误信息", "没有选择任何图片。", "返回上一步", "uploadimg.php?action=upload" );
       exit();
}

// 显示所有上传后的结果
echo " <table cellpadding=4 cellspacing=1 border=0 class=table width=400 align=left>
       <tr  class=navi align=center>
          <td>文件名</td>
          <td>大小</td>
          <td>类型</td>
          <td>上传结果</td>
       </tr>
       ";


foreach( $result as $value)
{
       echo $value;
}

echo "<tr  class=td1>
      <td colspan=4>共上传 " . ($uploaded + $unuploaded) . ", 成功: $uploaded, 失败:<font color=red> $unuploaded</font> </td>
      </tr>
      <tr class=navi>
       <td colspan=4 align=center>[ <a href='uploadimg.php?action=upload' title='继续上传'>继续上传</a> ] &nbsp;&nbsp;&nbsp;&nbsp;[ <a href='image.php' title='浏览图片'>浏览图片</a> ]</td>
     </tr>
   </table>
       ";
?> Webjx.Com

本文来自:网页教学网(www.webjx.com)原文链接:http://www.webjx.com/php/php_2007_11_01_331.html