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

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

有縮略圖功能 但是 感覺(jué)不全面,而且有點(diǎn)問(wèn)題,繼續(xù)學(xué)習(xí),將來(lái)以后修改下

<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;//文件出錯(cuò)設(shè)置

protected $fileflag;//文件檢測(cè)

protected $fileinfo; //FILES

protected $ext; //文件擴(kuò)展

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);

}

//錯(cuò)誤判斷

public function UpError(){

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

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

{

case 1:

$this->fileerror="上傳文件大小超過(guò)服務(wù)器允許上傳的最大值,php.ini中設(shè)置upload_max_filesize選項(xiàng)限制的值 ";

break;

case 2:

$this->fileerror="上傳文件大小超過(guò)HTML表單中隱藏域MAX_FILE_SIZE選項(xiàng)指定的值";

break;

case 3:

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

break;

case 4:

$this->fileerror="沒(méi)有選擇上傳文件";

break;

case 5:

$this->fileerror="未找到臨時(shí)目錄";

break;

case 6:

$this->fileerror="文件寫入失敗";

break;

case 7:

$this->fileerror="php文件上傳擴(kuò)展沒(méi)有打開(kāi) ";

break;

case 8:

$this->fileerror="";

break;

}

return false;

}

return true;

}

//檢測(cè)文件類型

public function UpMine(){

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

$this->error="文件上傳類型不對(duì)";

return false;

}

return true;

}

//檢測(cè)文件格式

public function UpExt(){

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

//var_dump($ext);

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

$this->fileerror="文件格式不對(duì)";

return false;

}

return true;

}

//檢測(cè)文件路徑

public function UpPath(){

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

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

}

}

//檢測(cè)文件大小

public function UpSize(){

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

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

$this->fileerror="文件過(guò)大";

return false;

}

return true;

}

//檢測(cè)文件是否HTTP

public function UpPost(){

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

$this->fileerror="惡意上償還";

return false;

}

return true;

}

//文件名防止重復(fù)

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上傳圖片類顯示縮略圖功能的相關(guān)知識(shí),希望對(duì)大家有所幫助

更多信息請(qǐng)查看網(wǎng)絡(luò)編程
易賢網(wǎng)手機(jī)網(wǎng)站地址:PHP上傳圖片類顯示縮略圖功能
由于各方面情況的不斷調(diào)整與變化,易賢網(wǎng)提供的所有考試信息和咨詢回復(fù)僅供參考,敬請(qǐng)考生以權(quán)威部門公布的正式信息和咨詢?yōu)闇?zhǔn)!
關(guān)于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡(jiǎn)要咨詢 | 簡(jiǎn)要咨詢須知 | 加入群交流 | 手機(jī)站點(diǎn) | 投訴建議
工業(yè)和信息化部備案號(hào):滇ICP備2023014141號(hào)-1 云南省教育廳備案號(hào):云教ICP備0901021 滇公網(wǎng)安備53010202001879號(hào) 人力資源服務(wù)許可證:(云)人服證字(2023)第0102001523號(hào)
云南網(wǎng)警備案專用圖標(biāo)
聯(lián)系電話:0871-65317125(9:00—18:00) 獲取招聘考試信息及咨詢關(guān)注公眾號(hào):hfpxwx
咨詢QQ:526150442(9:00—18:00)版權(quán)所有:易賢網(wǎng)
云南網(wǎng)警報(bào)警專用圖標(biāo)