Home  >  Article  >  Backend Development  >  Classic PHP batch upload source code_PHP tutorial

Classic PHP batch upload source code_PHP tutorial

WBOY
WBOYOriginal
2016-07-13 16:55:131195browse

This is downloaded from a source code package, including uploading pages to classes. The method is simple. Just save the following files with the same file name to easily implement the function of batch uploading files.

The code is as follows Copy code

html




Untitled Document























uploade.php file

//print_r($_FILES['spic']);
header('Content-Type:text/html;charset=utf-8');
//if(@$_FILES['spic'])echo "ddddddddd";;
include('upFiles.css.php');
$upfile = new UploadFiles(array('filepath'=>'./upload','allowtype'=>array('php','bmp','gif','jpg','png'),' israndfile'=>true,'maxsize'=>'1000000'));

if($upfile ->uploadeFile('spic')){

$arrfile = $upfile ->getnewFile();
foreach($arrfile as $v){
echo $v,"
";
}
echo "Upload successful!";
}else{
$err = $upfile ->gteerror();
if(is_array($err)){
foreach($err as $v1){
echo $v1,"
";
}
}else{
echo $err;
}
//var_dump($err);
}
//var_dump($upfile);
?>

upFiles.class.php upload class

class UploadFiles{

private $maxsize = '1000000'; //Maximum length of files allowed to be uploaded
private $allowtype = array('jpg','png','gif','jpeg');//Allow upload file types
private $israndfile = true;//Whether the file name is random
private $filepath;//upload path
private $originName; //Uploaded source file
private $tmpfileName;//Temporary file name
private $newfileName;//New file name
private $fileSize;//File size
private $fileType;//File type
private $errorNum = 0;//error number
private $errorMessg = array();//Error message
//Initialize members
function __construct($options = array()){
foreach($options as $key=>$val){
$key = strtolower($key);
//Check whether the subscript in the passed array is the same as the member attribute
//print_r(array_keys(get_class_vars(get_class($this))));
If(!in_array($key,array_keys(get_class_vars(get_class($this))))){
Continue;
}else{
$this->setOption($key,$val);
}
}
}
private function setOption($key,$val){
$this->$key = $val;
//echo $this->errorNum."
";
}
//Check file upload path
private function checkfilePath(){
//echo $this->filepath;
if(empty($this->filepath)){
$this->setOption('errorNum',"-5");
Return false;
}
if(!file_exists($this->filepath) || !is_writable($this->filepath)){
if(!@mkdir($this->filepath,0755)){
$this->setOption('errorNum','-4');
Return false;
}
}
return true;
}
//Get error information
private function getError(){
$str = "Error uploading file {$this->originName}---";
switch($this->errorNum){
case 4; $str .= "No files were uploaded";break;
case 3; $str .= "The file was only partially uploaded";break;
case 2; $str .= "Exceeds the allowable size of the file form";break;
case 1; $str .= "Exceeds the allowed size in php.ini";break;
case -1; $str .= "Unallowed type";break;
case -2; $str .= "The file is too large and cannot exceed ".$this->maxsize." bytes";break;
case -3; $str .= "Upload failed";break;
case -4; $str .= "Failed to create file upload directory";break;
case -5; $str .= "The upload path must be specified";break;
default; $str .= "Unknown error";
}
Return $str."
";
}
//Check file type
private function checkfileType(){
//echo $this->fileType;
if(!in_array(strtolower($this->fileType),$this->allowtype)){
$this->setOption('errorNum','-1');
Return false;
}else{
Return true;
}
}
//Check file size
private function checkfileSize(){
if($this->fileSize > $this->maxsize){
$this->setOption('errorNum','-2');
Return false;
}else{
Return true;
}
}
//Process random file names
private function prorandFile(){
$ch = $this->israndfile;
if($ch == 'true'){
Return true;
}else{
Return false;
}
}
//
private function setFiles($name="",$tmp_name="",$size="",$error=""){
//Check the upload path
if(!$this->checkfilePath()){
//$this->errorMessg = $this->getError();
Return false;
}
//echo $error."
";
if($error){
$this->setOption('errorNum',$error);
   return false;
  }
  $arrstr   = explode('.',$name);
  $type     = end($arrstr);
  $this->setOption('originName',$name);
  $this->setOption('fileSize',$size);
  $this->setOption('fileType',$type);
  $this->setOption('tmpfileName',$tmp_name);
  return true;
 }
 //检查是否有文件上传
 function checkFile($formname){
  if(!@$_FILES[$formname]){
   $this->setOption('errorNum',4);
   return false;
  }else{
   return true;
  }
 }
 //上传文件
 function uploadeFile($formname){
  if(!$this->checkFile($formname)){
   $this->errorMessg = $this->getError();
   return false;
  }
  $return   = true;
  $name     = @$_FILES[$formname]['name'];
  $tmp_name = @$_FILES[$formname]['tmp_name'];
  $size     = @$_FILES[$formname]['size'];
  $error    = @$_FILES[$formname]['error'];
  //$type     = $_FILES[$formname]['type'];
  
  if(is_array($name)){
  
   $errors = array();
   for($i=0; $i     if($this->setFiles($name[$i],$tmp_name[$i],$size[$i],$error[$i])){
     if(!$this->checkfileSize() || !$this->checkfileType()){
      $errors[] = $this->getError();
      $return = false;
     }
    }else{
     $errors[] = $this->getError();
     $return = false;
    }
    if(!$return) $this->setFiles();
   }
   if($return){
    $newfileN = array();
    for($i=0; $i      if($this->setFiles($name[$i],$tmp_name[$i],$size[$i],$error[$i])){
      if(!$this->copyFile()){
       $errors[] = $this->getError();
       $return = false;
      }else{
       $newfileN[] = $this->newfileName;
      }
     }
     $this->newfileName = $newfileN;
    }
   }
   //print_r($errors);
   $this->errorMessg = $errors;
   //echo $errors;
   return $return;
  }else{
   if($this->setFiles($name,$tmp_name,$size,$error)){
    $return = true;
    if($error) var_dump($error);
    
    if($this->checkfileSize() && $this->checkfileType()){
     
    }else{
     $return = false;
    }
   }else{
    $return = false;
   }
   if(!$return){
    $this->errorMessg = $this->getError();
   }
   return $return;
  }
 }
 //获取上传后的文件名
 function getnewFile(){
   return $this->newfileName;
 }
 //把文件拷贝到指定的路径
 function copyFile(){
  $filepath = rtrim($this->filepath,'/')."/";
  if(!$this->errorNum){
   if($this->prorandFile()){
     $this->newfileName = date('Ymdhis').rand(1000,9999).".".$this->fileType;
    }else{
     $this->newfileName = $this->originName;
    }
If(!move_uploaded_file($this->tmpfileName,$filepath.$this->newfileName)){
$this->setOption('errorNum',-3);
Return false;
}else{
Return true;
}
}else{
Return false;
}
}

//Message returned after upload error
function gteerror(){
$err = $this->errorMessg;
return $err;
}
}

?>

www.bkjia.comtruehttp: //www.bkjia.com/PHPjc/631702.htmlTechArticleThis is downloaded from a source code package, including uploading pages to classes. The method is simple, just save the following file With the same file name, you can simply upload files in batches...
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