php批量上传图片并把图片名放入数据库

2014 年 4 月 14 日4830

php批量上传图片并把图片名放入数据库

发布者:chinaitlab

 日期:

2014-04-10 05:58:01 浏览次数:0 (共有_条评论)

查看评论 | 我要评论

  前几天工作中要做这样一个功能,有八百多个系统 生成的会员;给这八百多个系统会员上传图片;然后把图片名放入数据库。

  第一步:

  第一步肯定是首先把图片上传到对应的图片目录下,直接用框架中已经有的上传类:

  <?php

  try {

  $upload=new Upload();

  $upload->set_ext(array('zip'));

  $path='目录名';

  if ( ! Io::mkdir($path)) // 创建目录

  {

  throw new Exception("无法创建文件上传目录:$path");

  }

  $upload->set_path($path);

  if(!$upload->is_allow_ext($_FILES['files']['name']))

  {

  $this->show_message('必须zip格式数据', '0', NULL, TRUE);

  }

  $result=$upload->save($_FILES['files']);

  $archive = new Archive_Zip();

  $archive->set_target($path)->decompress($result['file']);

  unlink($result['file']);//删除使用后的zip;

  $this->show_message('导入成功', '1', array(array('text'=>'返回导入页面','href'=>'***跳转的链接地址***')),TRUE);

  }catch(Exception $e){

  $this->show_message('图片导入失败', '0', NULL, TRUE);

  }

  }

  ?>

  第二步:

  图片上传完成后,就应该把目录下所有的系统会员图片名称取出来,那就得用遍历了。想想也不用那么麻烦了,php自带函数glob();

  glob() 函数返回匹配指定模式的文件名或目录。

  该函数返回一个包含有匹配文件 / 目录的数组。如果出错返回 false.

  <?php

  //获取目录所有文件并将结果保存到数组

  foreach(glob("目录名/*") as $d){

  $tmp=explode('.',$d);

  $k=end($tmp);

  //如果是文件,并且后缀名为jpg png的文件

  if(is_file($d)&&in_array($k,array('jpg','png'))){

  $files[]=str_replace('******目录名/','',$d);

  }

  }

  ?>

  循环过程中因为我只想得到图片名称,所以我把前面的目录替换为空。

  第三步:

  列出所有的图片后就该把图片文件名插入数据库了。

  写个循环就可以了啊。

  首先,用SELECT……查出系统会员,然后计算出系统会员的个数,

  <?php

  //查出系统会员

  $member= DB::query(Database::SELECT,

  " SELECT * FROM 会员表名 WHERE 是否为系统会员 =1; ")

  ->execute()

  ->as_array();

  ?>

  然后再循环插入数据库:

  <?php

  for($i=0;$i<count($files);$i++){

  $data = array(

  '图片字段' => $files[$i],

  );

  DB::update('会员表')

  ->set($data)

  ->where('系统会员ID', '=', $member[$i]['系统会员ID'])

  ->execute();

  }

  ?>

  OK.就这样就搞定了。

>>更多交流,请到ChinaUnix【Linux系统管理论坛】:http://http://www.zjjv.com///bbs/forum-2-1.html

关键词:

相关文章

网友评论

已有0位网友发表了看法

0 0