Home  >  Article  >  Backend Development  >  PHP implementation of multiple image upload class examples_PHP tutorial

PHP implementation of multiple image upload class examples_PHP tutorial

WBOY
WBOYOriginal
2016-07-13 10:21:56711browse

PHP implementation of multiple image upload class examples

This article mainly introduces PHP implementation of multiple image upload class examples. The detailed functions of this type of file annotation are practical and have certain scalability. Friends in need can refer to it

This article describes a practical PHP multi-image file upload class, which supports multiple image upload functions in gif, jpg, jpeg, pjpeg, and png formats. The class can also limit image types, upload image size, and set upload Directory, some submission judgment and other functions. In addition, this class is not limited to uploading images. It can also upload file types such as TXT/RAR. It just needs to be modified. Interested readers can try it themselves.

The complete function code of PHP multi-image upload class is as follows:

class more_file_upload{

const FILE_PATH = '/uploadfile/'; //Default file upload directory, please modify it yourself

var file_type;

var file_type_array;

 var file_type_real_array;

var file_type_string;

 var file_name;

var file_size;

var file_tmp_name;

var file_error;

var handledate;

static totalsize = 0;

Function __construct(file_name, file_error, file_size, file_tmp_name, file_type){

 this -> handledate = date('m-d-Y');

 if (!empty(file_name)){

 this -> file_name = file_name;

 this -> file_error = file_error;

 this -> file_size = file_size;

 this -> file_tmp_name = file_tmp_name;

 this -> file_type = file_type;

 this -> file_type_array = array('/', 'image/gif', 'image/jpg', 'image/jpeg', 'image/pjpeg', 'image/png');

 this -> file_type_real_array = array(0.1, 'jpg' => 74707370, 'gif' => 7173, 'bmp' => 6677, 'png' => 807871);

 this -> show_execute_message(this -> file_error, this -> file_name, this -> file_type, this -> file_size);

 }

 }

Function __destruct(){

 this -> file_name = NULL;

 this -> file_error = NULL;

 this -> file_size = NULL;

 this -> file_tmp_name = NULL;

 this -> file_type = NULL;

Self :: totalsize = 0;

 }

Function show_execute_message(smfileerror, smfilename, smfiletype, smfilesize){

 if(smfileerror > 0){

switch (smfileerror){

 case 1: smfilemessage = 'The file exceeds the agreed size of the server!';

break;

 case 2: smfilemessage = 'The file exceeds the specified file size!';

break;

Case 3: smfilemessage = 'Only part of the file was uploaded!';

break;

Case 4: echo "this->file_name " . 'File upload failed!
';

break;

 }

Self :: __destruct();

 }else{

 smfiletypeflag = array_search(smfiletype, this -> file_type_array);

// Perform real format verification

 if(smfiletypeflag != false){

file = fopen(this -> file_tmp_name, "rb");

 bin = fread(file, 10);

fclose(file);

strInfo = @unpack("c10chars", bin);

typeCode = intval(strInfo['chars1'] . strInfo['chars2']);

smfiletypeflag = array_search(typeCode, this -> file_type_real_array);

 if(smfiletypeflag == false){ // Determine whether it is a png picture

typeCode = intval(strInfo['chars2'] . strInfo['chars3'] . strInfo['chars4']);

smfiletypeflag = array_search(typeCode, this -> file_type_real_array);

 if(smfiletypeflag == false){ // Determine whether it is a jpg image

$typeCode = intval(strInfo['chars7'] . strInfo['chars8'] . strInfo['chars9'] . strInfo['chars10']);

smfiletypeflag = array_search(typeCode, this -> file_type_real_array);

 }

 }

 }

 if($smfiletypeflag == false){

 $smfilemessage = 'The file type is incorrect, please verify!';

Self :: __destruct();

 }else{

$resflag = $this -> move_file($this -> file_tmp_name, this -> file_name);

 if (resflag == 1){

$smfilemessage = 'File uploaded successfully!';

 self :: totalsize += intval($smfilesize);

Self :: __destruct();

 }else{

 $smfilemessage = 'File upload failed!';

Self :: __destruct();

 }

 }

 }

$smfilesizeformat = $this -> size_BKM(smfilesize);

echo '

  . smfilename . '

  ' . smfiletype . '

  ' . smfilesizeformat . '

  ' . smfilemessage . '

  ';

  }

  function move_file(mvfiletmp, mvfilename){ // 移动文件

  mvfilenamearr = explode('.', basename(mvfilename));

  mvfilenamearr[0] = this -> rand_string();

  mvfilename = implode('.', mvfilenamearr);

  if (is_uploaded_file(mvfiletmp)){

  uploadfile = self :: FILE_PATH . "mvfilename";

  result = move_uploaded_file(mvfiletmp, uploadfile);

  return result;

  }

  }

  function rand_string(){

  string = md5(uniqid(rand() . microtime()));

  return string;

  }

  function size_BKM(size){ // B/KB/MB单位转换

  if(size < 1024)

  {

  size_BKM = (string)size . " B";

  }

  elseif(size < (1024 * 1024))

  {

  size_BKM = number_format((double)(size / 1024), 1) . " KB";

  }else

  {

  size_BKM = number_format((double)(size / (1024 * 1024)), 1) . " MB";

  }

  return size_BKM;

  }

  }

  ?>

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/852816.htmlTechArticlePHP实现多图片上传类实例 这篇文章主要介绍了PHP实现多图片上传类实例,该类文件注释详细功能实用且具有一定的扩展性,需要的朋友可以参...
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