Heim > php教程 > php手册 > Hauptteil

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

WBOY
Freigeben: 2016-06-13 09:37:41
Original
1723 Leute haben es durchsucht

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

第一步:

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

<?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);
                }
            }
?>
Nach dem Login kopieren

第二步:

图片上传完成后,就应该把目录下所有的系统会员图片名称取出来,那就得用遍历了。想想也不用那么麻烦了,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);
				   }   
				}
?>
Nach dem Login kopieren

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



第三步:

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

写个循环就可以了啊。

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

<?php 
			 //查出系统会员
			$member= DB::query(Database::SELECT,
			" SELECT * FROM 会员表名 WHERE 是否为系统会员 =1; ")  
			->execute()
			->as_array();
?>
Nach dem Login kopieren


然后再循环插入数据库:

<?php
				for($i=0;$i<count($files);$i++){
								$data = array(
									'图片字段' => $files[$i],
								);
								DB::update('会员表')
									->set($data)
									->where('系统会员ID', '=', $member[$i]['系统会员ID'])
									->execute();
							

				}
?>
Nach dem Login kopieren


OK。就这样就搞定了。

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Empfehlungen
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage