//单图片上传 /** * @author buhuan * @param string $file_form_name form表单的上传文件字段的名称 name属性 * @param string $upload_path 上传的文件夹绝对路径 * @param string $web_path 上传后文件相对于网站根目录的相对路径 * @param bool $debug 是否显示上传失败的错误信息 * @param array $file_type 上传的文件类型 * @param int $file_size_limit 上传的文件大小限制 默认512KB * @return 失败返回FLASE 或者 上传成功返回图片地址的URL */ function uploadImage($file_form_name='',$upload_path='',$web_path='',$debug=FALSE,$file_size_limit=524288,$file_type){ if(empty($file_form_name) OR empty($upload_path) OR empty($web_path)) { if($debug){ echo '错误:form表单的上传字段的名称 或 上传的文件夹绝对路径 或 上传后文件相对于网站根目录的相对路径 为空'; exit; } return FALSE; } //检查后缀,如果不存在就取默认允许的后缀 $file_type = is_array($file_type) && count($file_type) > 0 ? $file_type : array('image/jpg','image/jpeg','image/gif'); //判断目录是否存在,不存在就创建 if(!is_dir($upload_path)) mkdir($upload_path,0777,TRUE); $file = $_FILES[$file_form_name]; //检查文件大小 $file_size = $file['size']; if($file_size > $file_size_limit){ if($debug){ echo '错误:上传的文件大小不能超过'.$file_size_limit; exit; } return FALSE; } //检查文件类型 $type = $file['type']; if(!in_array($type,$file_type)){ if($debug){ echo '错误:上传的文件类型应该是'.implode(',',$file_type).'中的一种'; exit; } return FAlSE; } //获得后缀 $ext = explode('/',$type); //上传后的文件名 $newfile = time().'.'.$ext[1]; if(move_uploaded_file($file['tmp_name'], $upload_path . $newfile)){ $filename = $web_path.$newfile; return $filename; } if($debug){ echo '错误:上传文件失败:未知错误'; exit; } }
使用
html: <input type="file" name="image" value="" class="txt"> code: //定义上传图片的路径 $upload_path = DISCUZ_ROOT.'data/attachment/plugin/vote/'; $web_path = 'data/attachment/plugin/vote/'; uploadImage('image',$upload_path,$web_path);