PHP上傳圖片類顯示縮略圖功能
來源:易賢網(wǎng) 閱讀:1305 次 日期:2016-08-16 14:58:39
溫馨提示:易賢網(wǎng)小編為您整理了“PHP上傳圖片類顯示縮略圖功能”,方便廣大網(wǎng)友查閱!

這篇文章主要介紹了PHP上傳圖片類顯示縮略圖功能的相關資料,重點強調(diào)下帶有縮鏍圖,但是感覺不全面,后續(xù)還會繼續(xù)修改,需要的朋友可以參考下

有縮略圖功能 但是 感覺不全面,而且有點問題,繼續(xù)學習,將來以后修改下

<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上傳圖片類顯示縮略圖功能的相關知識,希望對大家有所幫助

更多信息請查看網(wǎng)絡編程
易賢網(wǎng)手機網(wǎng)站地址:PHP上傳圖片類顯示縮略圖功能

2025國考·省考課程試聽報名

  • 報班類型
  • 姓名
  • 手機號
  • 驗證碼
關于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 新媒體/短視頻平臺 | 手機站點 | 投訴建議
工業(yè)和信息化部備案號:滇ICP備2023014141號-1 云南省教育廳備案號:云教ICP備0901021 滇公網(wǎng)安備53010202001879號 人力資源服務許可證:(云)人服證字(2023)第0102001523號
聯(lián)系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關注公眾號:hfpxwx
咨詢QQ:1093837350(9:00—18:00)版權所有:易賢網(wǎng)