Home  >  Article  >  Backend Development  >  PHP file upload code (supports file batch upload)_PHP tutorial

PHP file upload code (supports file batch upload)_PHP tutorial

WBOY
WBOYOriginal
2016-07-13 16:54:431202browse

php tutorial file upload code (supports file batch upload)

This file upload class uploads single files by default. We only need to modify $inputname ='files' to your form name to easily upload batch files. $savename = ''save file name, $alowexts = array() sets the type allowed to upload, $savepath = ''save path.
*/

class upload
{
public $savepath;
public $files;
private $error;

function __construct($inputname ='files', $savepath = '', $savename = '', $alowexts = array(),$maxsize = 1024000)
{
if(!$alowexts)$alowexts=explode('|',upload_ftype);
$file_array=array();
$savepath=str_replace('','/',$savepath);
$savename=preg_replace('/[^a-z0-9_]+/i','',$savename);
$this->savepath=substr($savepath,-1)=='/'?$savepath:$savepath.'/'; //The path name ends with /

if(!make_dir($this->savepath))
{
$this->error=8;
$this->error();
}
//exit($this->savepath);
if(!is_writeable($this->savepath))
{
$this->error=9;
$this->error();
}
if(sizeof($_files[$inputname]['error'])>10)
{
$this->error=13;
$this->error();
}
$max=sizeof($_files[$inputname]['error'])-1;
//exit($this->savepath.$savename);
foreach($_files[$inputname]['error'] as $key => $error)
{
if($error==upload_err_ok) //Batch upload
{
$savename=$savename?$savename:date('ymdims').mt_rand(10000,99999);
$fileext=strtolower(get_fileext($_files[$inputname]['name'][$key]));
$savename=$savename.'.'.$fileext;
$tmp_name=$_files[$inputname]['tmp_name'][$key];
$filesize=$_files[$inputname]['size'][$key];
If(!in_array($fileext,$alowexts))
{
$this->error=10;
$this->error();
}
If($filesize>$maxsize)
{
$this->error=11;
$this->error();
}
If(!$this->isuploadedfile($tmp_name))
{
$this->error=12;
$this->error();
}

if(move_uploaded_file($tmp_name,$this->savepath.$savename) || @copy($tmp_name,$this->savepath.$savename))
{
//exit($this->savepath.$savename);
@chmod($savename, 0644);
@unlink($tmp_name);
$file_array[]=$this->savepath.$savename;
}
}
else
{
$this->error=$error;
$this->error();
}
Unset($savename);
}
$this->files=$file_array;
return true;
}

function isuploadedfile($file) //Remove the backslash that comes with the system
{
return (is_uploaded_file($file) || is_uploaded_file(str_replace('','',$file)));
}

function error()
{
$upload_error=array(0 => 'File uploaded successfully!',
​ ​ 1 => 'The uploaded file exceeds the limit of the upload_max_filesize option in php.ini!',
​ ​ 2 => 'The size of the uploaded file exceeds the value specified by the max_file_size option in the html form!',
​ ​ 3 => 'Only part of the file was uploaded!',
​ ​ 4 => 'No files uploaded!',
          5 => 'Unknown error!',
             6 => 'The temporary folder cannot be found. !',
​ ​ 7 => 'Failed to write file to temporary folder!',
                                                                          'Creation of attachment directory failed!',
           9 => 'The attachment directory does not have write permission!',
10 => 'This type of file is not allowed to be uploaded!',
                                                                                   'The file exceeds the administrator's limit!',
              12 => 'Illegal file upload!',
13 => 'Up to 10 files can be uploaded at the same time!'
);
showmsg($upload_error[$this->error]);
}

}

//How to use

new upload();

www.bkjia.comtruehttp: //www.bkjia.com/PHPjc/631736.htmlTechArticlephp tutorial file upload code (supports file batch upload) This file upload class, by default, uploads single files. We just need to change $inputname ='files' to your form name and it will be convenient...
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn