最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
php文件上传类(该类支持单个或者多个文件上传)
时间:2022-06-24 18:31:46 编辑:袖梨 来源:一聚教程网
//php文件上传类(该类支持单个或者多个文件上传)
/**
* 类名:upfile
* 作用:处理文件上传
* 说明,该类处理单个或者多个文件上传,使用该类时,只需要实列化该类
* 例:
* $up = upfile()
* $up->update_file($_file['filename'])
*
* $up->update_file 函数返回一个数组,如果是多文件上传,则为多维数据。
* 数组的内容:
* $fileinfo['file_size'] 上传文件的大小
* $fileinfo['file_suffix'] 上传文件的类型
* $fileinfo['file_name'] 上传文件的名字
* $fileinfo['error'] 上传文件产生的错误
*
*/
class upfile {
public $fcount = 1; //上传文件的数量
public $ftype = array('jpg','jpeg','gif','png'); //文件格式
public $fsize = 1024; //文件大小单位kb
public $fdir = 'www.111com.net/'; //文件存放目录
public $errormsg = ''; //产生的临时错误信息
/**
*函数名:get_tmp_file($putfile)
*作用:取得上传的临时文件名
*@param array $putfile
*@return string $upimg 返回临时文件名
*/
function get_tmp_file($putfile){
if($this->fcount == 1){
$tmpfile = $putfile['tmp_name'];
}else{
for($i=0;$i<$this->fcount;$i++){
$tmpfile[] = $putfile['tmp_name'][$i];
}
}
return $tmpfile;
}
/**
*函数名:get_suffix($filename)
*作用:取得文件的后缀名
*@param file $filename
*@return string $suffixname 返回后缀名
*/
function get_suffix($filename){
$link = pathinfo($filename);
$suffixname = strtolower($link['extension']);
return $suffixname;
}
/**
*验证文件大小
*@author 赵红健
*@param $filesize
*@return booln
*/
function check_file_size($filesize){
$this->errormsg = '';
if($filesize/1000 > $this->fsize){
$this->errormsg = '警告:文件超出大小!';
return false;
}else{
return true;
}
}
/**
*验证文件类型是否合法
*@author 赵红健
*@param $filesuffix
*@return booln
*/
function check_file_suffix($filesuffix){
$this->errormsg = '';
if(!in_array($filesuffix,$this->ftype)){
$this->errormsg = '警告:文件类型不在允许范围内!';
return false;
}else{
return true;
}
}
/**
*移动临时文件
*@author 赵红健
*@param $filesuffix
*@return booln
*/
function move_temp_file($tmpfile,$targetfile){
$this->errormsg = '';
if(!move_uploaded_file($tmpfile,$targetfile)){
$this->errormsg = '警告:文件移动失败!';
return false;
}else{
return true;
}
}
/**
*函数名:update_file($putfile)
*作用:上传文件
*@param array $putfile
*@return array 文件信息
*/
function update_file($putfile){
$tmpfile = $this->get_tmp_file($putfile);
if(!file_exists($this->fdir)){
$this->errormsg[] = '错误:目录'.$this->fdir.'不存在';
return $this->errormsg;
}
$this->fdir = substr($this->fdir,strlen($this->fdir)-1,1)=='/'?$this->fdir:$this->fdir.'/';
if(!is_array($putfile['size'])){
$fileinfo['file_size'] = $putfile['size'];
if(!$this->check_file_size($fileinfo['file_size'])){
$fileinfo['error'] = $this->errormsg;
return $fileinfo;
}
$fileinfo['file_suffix'] = $this->get_suffix($putfile['name']);
if(!$this->check_file_suffix($fileinfo['file_suffix'])){
$fileinfo['error'] = $this->errormsg;
return $fileinfo;
}
$fileinfo['file_name'] = date('ymdhms').'.'.$fileinfo['file_suffix'];
if(!$this->move_temp_file($tmpfile,$this->fdir.$fileinfo['file_name'])){
$fileinfo['error'] = $this->errormsg;
return $fileinfo;
}
return $fileinfo;
}else{
for($i=0;$i<$this->fcount;$i++){
$fileinfo[$i]['file_size'] = $putfile['size'][$i];
if(!$this->check_file_size($fileinfo[$i]['file_size'])){
$fileinfo[$i]['error'] = $this->errormsg;
continue;
}
$fileinfo[$i]['file_suffix'] = $this->get_suffix($putfile['name'][$i]);
if(!$this->check_file_suffix($fileinfo[$i]['file_suffix'])){
$fileinfo[$i]['error'] = $this->errormsg;
continue;
}
$fileinfo[$i]['file_name'] = date('ymdhms').rand().'.'.$fileinfo[$i]['file_suffix'];
if(!$this->move_temp_file($tmpfile[$i],$this->fdir.$fileinfo[$i]['file_name'])){
$fileinfo[$i]['error'] = $this->errormsg;
continue;
}
}
return $fileinfo;
}
}
}
?>
相关文章
- 《燕云十六声》配置要求介绍 12-25
- 《燕云十六声》搬砖介绍 12-25
- 时空中的绘旅人天宇之间怎么玩 绘旅人天宇之间活动玩法介绍 12-25
- QQ2024年度报告怎么看 2024qq年度报告玩法介绍 12-25
- 归龙潮珠砂什么时候up 归龙潮红缘绮梦卡池介绍 12-25
- 王者荣耀S38赛季有什么更新 12-25