php中上传图片怎么显示出来,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 "%7B%24a%7D";

echo "%7B%24c%7D";

?>

Examples

以上所述是小编给大家介绍的PHP上传图片类显示缩略图功能的相关知识,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对谢谢网站的支持!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/336450.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

javaparser_JavaParser入门:以编程方式分析Java代码

javaparser我最喜欢的事情之一是解析代码并对其执行自动操作。 因此,我开始为JavaParser做出贡献,并创建了两个相关项目: java-symbol-solver和Effectivejava 。 作为JavaParser的贡献者,我反复阅读了一些有关从Java源代码提取信…

wps xml转换表格_这功能WPS卖近百元?教你免费将PDF转成Word

[PConline 应用]PDF文件如何转换成为Word?很多朋友研究这个问题已经很久了,PDF更利于统一格式传播,Word更便于编辑,因此收到PDF文件后、想要修改时要如何将PDF转换成Word可谓是一个刚需。当然,不少办公软件提供了这样的…

睡眠 应该用 a加权 c加权_在神经网络中提取知识:学习用较小的模型学得更好...

在传统的机器学习中,为了获得最先进的(SOTA)性能,我们经常训练一系列整合模型来克服单个模型的弱点。 但是,要获得SOTA性能,通常需要使用具有数百万个参数的大型模型进行大量计算。 SOTA模型(例如VGG16 / 19,ResNet50)…

gpu编程如何一步步学习_如何学习贴片机编程

学习贴片机编程首选要对贴片机有所熟悉了解,另外对常用的电脑编辑软件要会使用。目前通常学习贴片机编程有专门的培训学校,或者跟着生产线上现有的贴片机编程师傅学习熟练后再进行编程操作。下面深圳智驰科技就来分享一下如何学习贴片机编程。对贴片机编…

plotcylinder matlab,Matlab在任意两点之间绘制三维圆柱

Matlab在任意两点之间绘制三维圆柱Matlab在任意两点之间绘制三维圆柱此函数可能存在一些不足,请多多指教!function plotcylinder(u1,u2,color_a,r)Lnorm(u1-u2);RODu2-u1;[X,Y,Z]cylinder(r,100);x1X*0;y1Y*0;z1Z*0;ZL*Z-L/2;ROD_midpoint(u1u2)/2;xROD_…

jdk8和hotspot_HotSpot的-XshowSettings标志的简单性和价值

jdk8和hotspot一个方便的HotSpot JVM标志 ( 选项为Java启动 java )是-XshowSettings选项。 Oracle Java启动器描述页面中对此选项进行了如下描述 : -XshowSettings : category显示设置并继续。 该选项的可能类别参数包括&#xf…

matlab信号分割与比对,matlab测量计算信号的相似度

本示例说明如何测量信号相似度。将回答以下问题:如何比较具有不同长度或不同采样率的信号?如何确定测量中是否存在信号或仅有噪声?有两个信号相关吗?如何测量两个信号之间的延迟?比较具有不同采样率的信号考虑一个音频…

Spring Bootstrap中具有配置元数据的高级配置

在简要介绍了配置元数据并涵盖了我之前的文章《 在Spring Boot中使用配置元数据Pimp您的配置》中的基础知识之后,现在该看看如何进一步执行此步骤并进一步自定义配置。 在这篇文章中,我计划提出对配置属性的弃用,并讨论各种值提供程序&#x…

ssh 与 telnet 有何不同?_采用创新面料Nike Infinalon的全新瑜珈系列究竟有何不同?...

采用创新面料Nike Infinalon的全新瑜珈系列究竟有何不同?无拘无束自由运动——这是耐克瑜伽系列新品的核心设计理念。全新系列为你提供垫上瑜伽时毫无束缚的舒适感,采用了耐克创新型面料:Nike Infinalon。Nike Infinalon应用于耐克最新瑜伽系…

matlab中的导函数驻点,Matlab用导数作定性分析

Matlab用导数作定性分析5.1知识要点:函数作图 —用导数定性描述函数【 clf,xlinspace(-8,8,30);f(x-3).^2./(4*(x-1)); plot(x,f) 】【 fplot((x-3)^2/(4*(x-1)),[-8,8])) 】【 clf,xsym(x); f(x-3)^2/(4*(x-1)); ezplot(f,[-8,8]) ,ti…

原生态基于OpenCV图像处理软件开发

部分功能效果图 GitHub:https://github.com/CnYiXiaoNaiHe/OpenCV- 持续更新

git.exe 启动 慢_四川成都surface电脑启动到一半黑屏维修服务地址电话

联系人:刘工 欢迎来电 地址:成都市一环路南二段1号(磨子桥口)数码科技大厦(新世纪电脑城对面)4楼413专业surface全系列维修因为专注,所以专注,所以surface配件都有现货。微软电脑,微软平板电脑专业维修服务点surface R…

【FFMPEG应用篇】基于C++使用ffmpeg和QT开发播放器

音视频基础知识 1.MPEG-4是一套用于音频,视频信息的亚索编码标准。 2.常见的封装格式 MP4 MOV AVI:压缩标准可以任意选择 FLV :FLV封装格式详细参考 TS:直播流媒体使用; 3.常用视频编码格式 H264&#xff0…

java代码自动生成的插件_如何使用插件生成自定义Java 8代码

java代码自动生成的插件大多数程序员讨厌的一件事就是编写样板代码。 无休止的时间花费在设置实体类和配置数据库连接上。 为了避免这种情况,您可以让Speedment Open Source之类的程序为您生成所有这些代码。 这样可以很容易地以最少的人工就可以启动和运行数据库项…

PHP在Tomcat中CSS出错,tomcat找不到css怎么办

tomcat找不到css怎么办Tomcat找不到WEB下的Css文件,一般可以通过以下方式解决:将路径相对位置修改为域相对位置,如下:备注:WEB-INF不是公共访问目录,只有在Servlets的RequestDispatcher或JSPS的可以访问&am…

eve模拟器_《Re:从零开始的新伊甸征程》一步到位教你下载EVE手游

自从小生发布了《「EVE Echoes」萌新向完全入门指南》后有小伙伴回应不懂怎样下载游戏的问题,小生作为殷郡中的一名闲云野鹤也尽一点绵薄之力帮助各位,尽量为各位扫清前往新伊甸的“石头”吧。[酷]在开篇前小生可以大致明确告诉你,不要问小生…

【开源项目】QT OPENGL 与 shader 绘制展示视频代码实例 OPenGL直接显示YUV数据

本文使用QT中的QOpenGLFunctions(此类封装了OPenGL的方法,相当于QT版OPenGL) 其次重载 void paintGL(); void initializeGL(); void resizeGL(int width, int height);是基本操作 * 三种GLSL变量说明 * varying 顶点与片元共享 * attri…

java开发课程表_展示Java开发人员课程包

java开发课程表60个小时以上的课程,5门所有级别的课程:成为Java编程专家 嘿,怪胎, 本周,在我们的JCG Deals商店中 ,我们提供了一个极端的报价 。 我们提供的Java Developer Course Bundle 仅售39美元&am…

二阶自回归过程matlab,时间序列分析:二阶自回归过程

时间序列分析:二阶自回归过程Author: nex3z2019-07-131. 定义对于二阶自回归过程 $AR(2)$\begin{equation}X_t \phi_1 X_{t-1} \phi_2 X_{t-2} e_t \tag{1}\end{equation}假设 $e_t$ 独立于 $Y_{t-1}, Y_{t-2}, \cdots$。式 $(1)$ 也可以表示为\begin{equation}X…