php实现常用文件上传类的示例
author:一佰互联 2019-04-25   click:137

废话不多说,直接上代码:

<?php
/**
 * 上传文件类
 * @param _path : 服务器文件存放路径
 * @param _allowType : 允许上传的文件类型和所对应的MIME
 * @param _file : 上传的文件信息
 */
class Upload{

 private $_path;
 private $_allowType;
 private $_file;
 /**
  * 构造函数
  * @param string : 服务器上存放上传文件的路径
  */
 function __construct( $path = "" )
 {
  $this->_path = $path;
  $this->_allowType = array(
    // images
    "bmp" => "image/x-ms-bmp",
    "jpg" => "image/jpeg",
    "jpeg" => "image/jpeg",
    "gif" => "image/gif",
    "png" => "image/png",
    "tif" => "image/tiff",
    "tiff" => "image/tiff",
    "tga" => "image/x-targa",
    "psd" => "image/vnd.adobe.photoshop",
    //文本
    "txt" => "text/plain",
    "php" => "text/x-php",
    "html" => "text/html",
    "htm" => "text/html",
    "js" => "text/javascript",
    "css" => "text/css",
    "rtf" => "text/rtf",
    "rtfd" => "text/rtfd",
    "py" => "text/x-python",
    "java" => "text/x-java-source",
    "rb" => "text/x-ruby",
    "sh" => "text/x-shellscript",
    "pl" => "text/x-perl",
    "sql" => "text/x-sql",
    //应用
    "exe" => "application/octet-stream",
    "doc" => "application/vnd.ms-word",
    "docx" => "application/vnd.ms-word",
    "xls" => "application/vnd.ms-excel",
    "ppt" => "application/vnd.ms-powerpoint",
    "pps" => "application/vnd.ms-powerpoint",
    "pdf" => "application/pdf",
    "xml" => "application/xml",
    //音频
    "mp3" => "audio/mpeg",
    "mid" => "audio/midi",
    "ogg" => "audio/ogg",
    "mp4a" => "audio/mp4",
    "wav" => "audio/wav",
    "wma" => "audio/x-ms-wma",
    //视频
    "avi" => "video/x-msvideo",
    "dv" => "video/x-dv",
    "mp4" => "video/mp4",
    "mpeg" => "video/mpeg",
    "mpg" => "video/mpeg",
    "mov" => "video/quicktime",
    "wm" => "video/x-ms-wmv",
    "flv" => "video/x-flv",
    "mkv" => "video/x-matroska"
   );
 }
 /**
  * 上传函数
  * @param string : 表单元素的name 值
  * @return [type]
  */
 public function upload( $txtName = "" )
 {
  $this->_file = $_FILES[$txtName];
  if( $this->_file["error"] == 0){
   $fileType = end( explode(".", $this->_file["name"] ));
   $allowType = array();
   foreach( $this->_allowType as $item=>$value ){
    $allowType[] = $item;
   }
   if( !in_array($fileType, $allowType)){
    die("上传的文件格式不正确!");
   }else{
    if(move_uploaded_file($this->file["tmp_name"], ($this->path).$this->file["name"]))
     {
      echo "<script>alert("上传成功!")</script>";
     }
    else
     {
      echo "<script>alert("上传失败!");</script>";
     }
   }

  }else{
   //没有正确上传
   switch ($this->file["error"]){
    case 1:
     die("文件大小超过系统限制。");
     break;
    case 2:
     die("文件大小超过预定义限制。");
     break;
    case 3:
     die("文件为完全上传。");
     break;
    case 4:
     die("未上传任何文件。");
     break;
    default:
     die("上传出错");
     break;
   }
  }
 }
 //end upload
}

以上这篇php实现常用文件上传类的示例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持网页设计。