PHP环境搭建的详细步骤
来源: 阅读:769 次 日期:2016-08-16 14:55:37
温馨提示: 小编为您整理了“PHP环境搭建的详细步骤”,方便广大网友查阅!

有缩略图功能 但是 感觉不全面,而且有点问题,继续学习,将来以后修改下

<form action="<?php $_SERVER['PHP_SELF']; ?>" enctype="multipart/form-data" method="post" ><input type="text" name="name" /><input type="file" name="file" /><input type="submit" name='submit' value="提交" ></form> 

<?php 

/** 

 * Created by PhpStorm. 

 * User: Administrator 

 * Date: 2016/6/28 

 * Time: 21:04 

 */

class upload{ 

   protected $fileMine;//文件上传类型 

   protected $filepath;//文件上传路径 

   protected $filemax;//文件上传大小 

   protected $fileExt;//文件上传格式 

   protected $filename;//文件名 

   protected $fileerror;//文件出错设置 

   protected $fileflag;//文件检测 

   protected $fileinfo; //FILES 

   protected $ext; //文件扩展 

   protected $path; 

  //文件上传 

  public function __construct($filename="file",$filemax=20000000,$filepath="./Uploads",$fileflag=true,$fileExt=array('jpg','exe'),$fileMine=array('image/jpeg')) 

  { 

    $this->filename=$filename; 

    $this->fileinfo=$_FILES[$this->filename]; 

    $this->filemax=$filemax; 

    $this->filepath=$filepath; 

    $this->fileflag=$fileflag; 

    $this->fileExt=$fileExt; 

    $this->fileMine=$fileMine; 

    //var_dump($this->filename); 

  } 

  //错误判断 

  public function UpError(){ 

      if($this->fileinfo['error']>0){ 

        switch($this->fileinfo['error']) 

        { 

          case 1: 

          $this->fileerror="上传文件大小超过服务器允许上传的最大值,php.ini中设置upload_max_filesize选项限制的值 "; 

            break; 

          case 2: 

            $this->fileerror="上传文件大小超过HTML表单中隐藏域MAX_FILE_SIZE选项指定的值"; 

            break; 

          case 3: 

            $this->fileerror="文件部分被上传"; 

            break; 

          case 4: 

            $this->fileerror="没有选择上传文件"; 

            break; 

          case 5: 

            $this->fileerror="未找到临时目录"; 

            break; 

          case 6: 

            $this->fileerror="文件写入失败"; 

            break; 

          case 7: 

            $this->fileerror="php文件上传扩展没有打开 "; 

            break; 

          case 8: 

            $this->fileerror=""; 

            break; 

        } 

        return false; 

      } 

      return true; 

  } 

  //检测文件类型 

  public function UpMine(){ 

    if(!in_array($this->fileinfo['type'],$this->fileMine)) { 

      $this->error="文件上传类型不对"; 

      return false; 

    } 

    return true; 

  } 

  //检测文件格式 

  public function UpExt(){ 

    $this->ext=pathinfo($this->fileinfo['name'],PATHINFO_EXTENSION); 

    //var_dump($ext); 

    if(!in_array($this->ext,$this->fileExt)){ 

      $this->fileerror="文件格式不对"; 

      return false; 

    } 

    return true; 

  } 

  //检测文件路径 

  public function UpPath(){ 

    if(!file_exists($this->filepath)){ 

      mkdir($this->filepath,0777,true); 

    } 

  } 

  //检测文件大小 

  public function UpSize(){ 

    $max=$this->fileinfo['size']; 

    if($max>$this->filemax){ 

      $this->fileerror="文件过大"; 

      return false; 

    } 

    return true; 

  } 

  //检测文件是否HTTP 

  public function UpPost(){ 

    if(!is_uploaded_file($this->fileinfo['tmp_name'])){ 

      $this->fileerror="恶意上偿还"; 

      return false; 

    } 

    return true; 

  } 

  //文件名防止重复 

  public function Upname(){ 

    return md5(uniqid(microtime(true),true)); 

  } 

  //图片缩略图 

  public function Smallimg($x=100,$y=100){ 

    $imgAtt=getimagesize($this->path); 

    //图像宽,高,类型 

    $imgWidth=$imgAtt[0]; 

    $imgHeight=$imgAtt[1]; 

    $imgext=$imgAtt[2]; 

    //等比列缩放 

    if(($x/$imgWidth)>($y/$imgHeight)){ 

      $bl=$y/$imgHeight; 

    }else{ 

      $bl=$x/$imgWidth; 

    } 

    $x=floor($imgWidth*$bl); //缩放后 

    $y=floor($imgHeight*$bl); 

    $images=imagecreatetruecolor($x,$y); 

    $big=imagecreatefromjpeg($this->path); 

    imagecopyresized($images,$big,0,0,0,0,$x,$y,$imgWidth,$imgWidth); 

    switch($imgext){ 

      case 1: 

        $imageout=imagecreatefromgif($this->path); 

        break; 

      case 2: 

        $imageout=imagecreatefromjpeg($this->path); 

        break; 

      case 3: 

        $imageout=imagecreatefromgif($this->path); 

        break; 

    } 

    $im=imagejpeg($images,$this->path); 

  } 

  //文件双传 

  public function uploads() 

  { 

    if($this->UpError()&&$this->UpMine()&&$this->UpExt()&&$this->UpSize()&&$this->UpPost()){ 

      $this->UpPath(); 

      $names=$this->Upname(); 

      $this->path=$this->filepath.'/'. $names.'.'.$this->ext; 

      if(move_uploaded_file($this->fileinfo['tmp_name'], $this->path)){ 

        return $this->path; 

      }else{ 

        $this->fileerror="上传失败"; 

      } 

    }else{ 

      exit("<b>".$this->fileerror."</b>"); 

    } 

  } 

?>

-------------------------------------------------------------------------------------------------------

<?php 

  header("content-type:imagejpeg"); 

header("Content-type:text/html;charset=utf-8"); 

 require 'list.php'; 

 $u=new upload(); 

 $a=$u->uploads(); 

 $c=$u->Smallimg(); 

echo "<img src={$a} />"; 

echo "<img src={$c} />"; 

?> 

----------------------------------------------------------------------------------------------------------

<!DOCTYPE html> 

<html> 

<head> 

<meta charset="utf-8"> 

<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> 

<title>Examples</title> 

<meta name="description" content=""> 

<meta name="keywords" content=""> 

<link href="" rel="stylesheet"> 

</head> 

<body> 

  <form action="ce.php" enctype="multipart/form-data" method="post" > 

  <input type="text" name="name" /><input type="file" name="file" /> 

  <input type="submit" name='submit' value="提交" > 

  </form> 

</body> 

</html>

以上这篇PHP之图片上传类实例代码(加了缩略图)就是小编分享给大家的全部内容了,希望能给大家一个参考

更多信息请查看网络编程
手机网站地址:PHP环境搭建的详细步骤
由于各方面情况的不断调整与变化, 提供的所有考试信息和咨询回复仅供参考,敬请考生以权威部门公布的正式信息和咨询为准!
关于我们 | 联系我们 | 人才招聘 | 网站声明 | 网站帮助 | 非正式的简要咨询 | 简要咨询须知 | 加入群交流 | 手机站点 | 投诉建议
工业和信息化部备案号:滇ICP备2023014141号-1 云南省教育厅备案号:云教ICP备0901021 滇公网安备53010202001879号 人力资源服务许可证:(云)人服证字(2023)第0102001523号
云南网警备案专用图标
联系电话:0871-65317125(9:00—18:00) 获取招聘考试信息及咨询关注公众号:hfpxwx
咨询QQ:526150442(9:00—18:00)版权所有:
云南网警报警专用图标
Baidu
map