php为什么上传不了图片
你看看 form 表单是否写了 enctype="multipart/form-data" 这个条件 然后 method=post
然后上传文件:
<?php
function upfile($filename,$path,$type=array('jpg','png','gif','jpeg'),$size=512000){
$file = $filename;
$msg ='';//定义一个变量用于存储错误信息
//1,判断有没有错误
if($file['error']>0){
switch($file['error']){
case 1:
$msg.='上传的文件超过了 php.ini 中 upload_max_filesize 选项限制的值<br />';
break;
case 2:
$msg .= '上传文件的大小超过了 HTML 表单中 MAX_FILE_SIZE 选项指定的值<br/>';
break;
case 3:
$msg .= '文件只有部分被上传';
break;
case 4:
$msg .= '没有文件被上传';
break;
case 6:
$msg .='找不到临时文件夹';
break;
case 7:
$msg .='文件写入失败';
break;
default:
$msg .='未知错误';
break;
}
}
if(!empty($msg)){
return array('msg'=>$msg,'filename'=>'');
}
//2,判断文件大小是否超过允许的值
if($file['size']>$size){
$msg.='文件不能超过限定大小'.$size.'字节';
return array('msg'=>$msg,'filename'=>'');
}
//3,判断文件的后缀是否允许
$subfix = pathinfo($file['name'],PATHINFO_EXTENSION);
if(!in_array($subfix,$type)){
$msg.='文件类型不允许';
return array('msg'=>$msg,'filename'=>'');
}
//4,重新给予新的文件名
$newname = date('YmdHis',time()).rand(0,999).'.'.$subfix;
//5,判断是否是上传文件
if(!is_uploaded_file($file['tmp_name'])){
$msg.='不是上传文件';
return array('msg'=>$msg,'filename'=>'');
}
if(move_uploaded_file($file['tmp_name'],rtrim($path,'/').'/'.$newname)){
$msg .='文件上传成功,文件名为'.$newname;
return array('msg'=>$msg,'filename'=>$newname);
}else{
$msg.='文件上传失败';
return array('msg'=>$msg,'filename'=>'');
}
}
?>
希望能帮到你吧