techsir 登陆 |注册|TS首页
  首页 快活林 猿氏悟语

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

By: 盖茨 发表于 2008-11-7 11:59:35 · 4258次点击   回复:0   
单张的图片上传是不复杂的,这里涉及到多张图片上传和对图片格式的校验,保证上传的一定是图片,防止上传其他文件到服务器。

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

以下是引用片段:

  1. <?php
  2. // 图片目录
  3. $img_dir = "../upload/";
  4. // …… html 显示上传界面  
  5. /* 图片上传处理 */
  6. // 把图片传到服务器
  7. // 初始化变量
  8. $uploaded = 0;
  9. $unuploaded = 0;  
  10. //只允许五张图片上传
  11. for ($i=0; $i<=5; $i++)
  12. {
  13.        //获取当前图片的信息
  14. $is_file = $_FILES['imgfile']['name'][$i];
  15. //如果当前图片不为空
  16.        if (!empty($is_file))
  17.        {
  18.               //把当前图片的信息存储到变量里
  19.               $result[$i] = "
  20.                             <tr class=td2 align=center>
  21.                             <td>". $_FILES['imgfile']['name'][$i] ."</td>
  22.                             <td>". round($_FILES['imgfile']['size'][$i]/1024, 2) ."K</td>
  23.                             <td>". $_FILES['imgfile']['type'][$i] ."</td>
  24.                             <td>";
  25.               // 判断上传的图片的类型是不是jpg,gif,png,bmp中的一种,同时判断是否上传成功
  26.               if (
  27.                      $_FILES['imgfile']['type'][$i] == "image/pjpeg"   ||
  28.                      $_FILES['imgfile']['type'][$i] == "image/gif"     ||
  29.                      $_FILES['imgfile']['type'][$i] == "image/x-png"   ||
  30.                      $_FILES['imgfile']['type'][$i] == "image/bmp"
  31.                  )
  32.               {
  33.                      //如果上传的文件没有在服务器上存在
  34.                      if (!file_exists($img_dir . $_FILES['imgfile']['name'][$i]))
  35.                      {
  36.                             //把图片文件从临时文件夹中转移到我们指定上传的目录中
  37.                             move_uploaded_file($_FILES['imgfile']['tmp_name'][$i],  
  38.       $img_dir . $_FILES['imgfile']['name'][$i]);
  39.                             $result[$i] .= "成功";
  40.                             $uploaded++;
  41.                      }
  42.                      else         //如果文件已经在服务器上存在
  43.                      {
  44.                             $result[$i] .= "<font color=red>文件已存在</font>";
  45.                             $unuploaded++;
  46.                             continue;
  47.                      }
  48.               }
  49.               else
  50.               {
  51.                      $result[$i] .= "<font color=red>失败</font>";
  52.                      $unuploaded++;
  53.               }
  54.               $result[$i] .= "</td></tr>";
  55.        } //end if
  56. } // end for
  57.   
  58. // 如果没有选择任何图片
  59. if (empty($result))
  60. {
  61.        prompt_msg("错误信息", "没有选择任何图片。", "返回上一步", "uploadimg.php?action=upload" );
  62.        exit();
  63. }
  64. // 显示所有上传后的结果
  65. echo " <table cellpadding=4 cellspacing=1 border=0 class=table width=400 align=left>
  66.        <tr  class=navi align=center>
  67.           <td>文件名</td>
  68.           <td>大小</td>
  69.           <td>类型</td>
  70.           <td>上传结果</td>
  71.        </tr>
  72.        ";
  73. foreach( $result as $value)
  74. {
  75.        echo $value;
  76. }
  77. echo "<tr  class=td1>
  78.       <td colspan=4>共上传 " . ($uploaded + $unuploaded) . ", 成功: $uploaded, 失败:<font color=red> $unuploaded</font> </td>
  79.       </tr>
  80.       <tr class=navi>
  81.        <td colspan=4 align=center>[ <a href='uploadimg.php?action=upload' title='继续上传'>继续上传</a> ] &nbsp;&nbsp;&nbsp;&nbsp;[ <a href='image.php' title='浏览图片'>浏览图片</a> ]</td>
  82.      </tr>
  83.    </table>  
  84.        ";
  85. ?>
复制代码
4258次点击
0个回复  |  直到 2008-11-7 11:59:35
添加一条新回复
您需要登录后才可以回帖 登录 | 成为会员 新浪微博登陆

标签云|手机版|科技先生 ( 京ICP备07036130号 Powered by Discuz! X )

GMT+8, 2024-5-19 08:42