①、先看控制器层的业务逻辑
if($_POST){
foreach($_FILES['fileinfo'] as $key=>$value){// $key value:name,type,tmp_name,error,size
foreach($value as $ke=>$val){ // $ke value:1 2 3 4
$arr[$ke][$key] = $val;
}
}
$files_type=array("audio","video","image");
foreach($arr as $k=>$v){
if(!in_array(substr($v['type'],0,5),$files_type) || $v['size'] >= 8*1024*1024){
echo "不支持".$v['name']."文件类型上传或文件尺寸大于8M";
unset($arr[$k]);
}else{
$arr[$k]['utime'] = time();
$arr[$k]['uid'] = $_SESSION['userid'];
}
}
if(!insert_multi($dbh,'media',$arr))
{
die("上传失败!");
}
view($html="list",array('data'=>$data),'admin/',$dir);
}
②、模型层的业务逻辑
//通用多条插入
//insert into $table(param1,parm2,param3) values(value1,value2,value3),(value1,value2,value3);
function insert_multi($dbh,$table,$data=array()){//$data['post']=$_POST;$data['files']=$arr;
//print_r($data);
foreach($data as $key=>$value){
foreach($value as $ke=>$val){
//$data[$key]['id'] = null;
if($ke=='type'){
$data[$key]['types']= $val;
unset($data[$key][$ke]);
}
if($ke=='tmp_name'){
$data[$key]['bin']= mysql_real_escape_string(file_get_contents($val));
unset($data[$key][$ke]);
}
if($ke=='error'){
unset($data[$key][$ke]);
}
}
}
//print_r($data);
$keystr="";$valstr="";
for($i=0;$i<count($data);$i++){
//print_r($data[$i]);
foreach($data[$i] as $k=>$v){
if($i==0){
$keystr .= $k.",";
}
$valstr .= "'".$v."',";
}
$valstr = substr($valstr,0,-1)."),(";
}
$sql = "insert into $table(".substr($keystr,0,-1).") values(".substr($valstr,0,-2);
//print_r($sql);
return $dbh->query($sql);
}
0 条评论。