首页 > 编程 > PHP > 正文

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

2020-03-22 19:15:46
字体:
来源:转载
供稿:网友
  • 前几天工作中要做这样一个功能,有八百多个系统 生成的会员;给这八百多个系统会员上传图片;然后把图片名放入数据库

    第一步:

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

    <?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。就这样就搞定了。

    PHP编程

    郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。

  • 发表评论 共有条评论
    用户名: 密码:
    验证码: 匿名发表