PHP环境搭建的详细步骤
来源: 阅读:689 次 日期:2016-08-16 14:55:37
温馨提示: 小编为您整理了“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("".$this->fileerror."");

}

}

}

?>

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

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

echo "";

?>

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

Examples

Baidu
map

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

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