php图片文件上传类(可自动生成缩略图)
分享一个php图片上传类,且可以自动生成缩略图,有需要的朋友,可以作个参考,希望可以对您有用。
php实现的图片文件上传类,代码: <?php /** 功 能:文件上传类 支持文件夹自动分组保存; 创建类:参数(文件域,文件原名,文件大小); $myupload = new upfileClass($upfile,$upfile_name,$upfile_size); $myupload->savefile(); # 保存方法 并返回保存路径附带文件名; @ echo MakeBuild($BuildFile,$newFile,$File_width); 生成指定文件的缩略图; $myupload->MakeBuild("images/a.jpg","news/b.jpg","100"); */ class upfileClass { var $upfile, $upfile_name, $upfile_size; var $new_upfile_name; # 上传后的文件名称 ; var $fleth, $fileExtent; # 文件扩展名(类型) ; var $f1, $f2, $f3; # 文件保存路径(多级) upfiles/2008-01/08/; var $filename; # 文件(带路径) ; var $maxSize, $File_type; # 允许上传文件的大小 允许上传文件的类型 ; var $BuildFile,$newFile,$File_width,$File_height,$rate; function upfileClass($upfile,$upfile_name,$upfile_size) { $this->upfile = $upfile; $this->upfile_name = $upfile_name; $this->upfile_size = $upfile_size; $this->new_upfile_name = $this->CreateNewFilename($this->upfile_name); $this->f1 = "upfiles"; $this->f2 = $this->f1."/".date('Y')."-".date('m'); $this->f3 = $this->f2."/".date('d'); $this->filename = $this->f3 . "/" . $this->new_upfile_name; $this->maxSize = 500*1024; # 文件大小 500KB $this->File_type = "gif/jpg/jpeg/png"; # 允许上传的文件类型 } # 创建新文件名 (原文件名) function CreateNewFilename($file_name) { $this->fleth = explode(".",$file_name); $this->fileExtent = $this->fleth[(int)count($this->fleth)-1]; # 获取文件后缀; $tmpstr = date('YmdHis') . "." .$this->fileExtent; # 创建新文件名; return $tmpstr; } # 检测文件类型是否正确 function chk_fileExtent() { $iwTrue = 0; $fle = explode("/",$this->File_type); for($i=0; $i < count($fle); $i++){ if( $this->fileExtent == $fle[$i] ) { $iwTrue = (int) $iwTrue + 1; } } if( $iwTrue == 0 ){ $this->msg("文件不符合 ".$this->File_type." 格式!"); } } # 提示错误信息并终止操作 function msg($Error) { echo "<script language=/"javascript/">/n"; echo " alert('".$Error."');/n"; echo " window.history.back();/n"; echo "</script>/n"; die(); } # 保存文件 function savefile() { $this->chk_fileExtent(); $this->chk_fileSize(); $this->CreateFolder( "../".$this->f1 ); $this->CreateFolder( "../".$this->f2 ); $this->CreateFolder( "../".$this->f3 ); return $this->chk_savefile(); } # 检测上传结果是否成功 function chk_savefile() { $copymsg = copy($this->upfile,"../".$this->filename); if( $copymsg ){ return $this->filename; } else{ $this->msg("文件上传失败! /n/n请重新上传! "); } } # 创建文件夹 function CreateFolder($foldername) { if( !is_dir($foldername) ){ mkdir($foldername,0777); } } # 检测文件大小 function chk_fileSize() { if( $this->upfile_size > $this->maxSize ){ $this->msg("目标文件不能大于". $this->maxSize/1024 ." KB"); } } # 删除文件($filePath 文件相对路径) function Deletefile($filePath) { if( !is_file($filePath) ){ return false; } else{ $ending = @unlink($filePath); return $ending; } } /* 函数:生成缩略图 MakeBuild("images/a.jpg","news/b.jpg","100"); 参数: echo $BuildFile; 原图 带路径 echo $newFile; 生成的缩略图 带路径 echo $File_width; 缩略图宽度值 echo $File_height; 缩略图高度值 (默认为宽度的比例值) echo $rate; 缩略图象品质; */ function MakeBuild($BuildFile,$newFile,$File_width,$File_height=0,$rate=100) { if(!is_file($BuildFile)){ $this->msg("文件 ".$BuildFile." 不是一个有效的图形文件!/n/n系统无法生成该文件的缩略图!"); return false; } $data = GetImageSize($BuildFile); switch($data[2]){ case 1: $im = @ImageCreateFromGIF($BuildFile); break; case 2: $im = @ImageCreateFromJPEG($BuildFile); break; case 3: $im = @ImageCreateFromPNG($BuildFile); break; } if(!$im){ return false; } else{ $srcW=ImageSX($im); # 取得原图宽度; $srcH=ImageSY($im); # 取得原图高度; $dstX=0; $dstY=0; if($File_height==0){ $File_height = $File_width/$srcW*$srcH; } if ($srcW*$File_height>$srcH*$File_width){ $fFile_height = round($srcH*$File_width/$srcW); $dstY = floor(($File_height-$fFile_height)/2); $fFile_width = $File_width; } else { $fFile_width = round($srcW*$File_height/$srcH); $dstX = floor(($File_width-$fFile_width)/2); $fFile_height = $File_height; } $ni = ImageCreateTrueColor($File_width,$File_height); $dstX = ($dstX<0)?0:$dstX; $dstY = ($dstX<0)?0:$dstY; $dstX = ($dstX>($File_width/2))?floor($File_width/2):$dstX; $dstY = ($dstY>($File_height/2))?floor($File_height/s):$dstY; ImageCopyResized($ni,$im,$dstX,$dstY,0,0,$fFile_width,$fFile_height,$srcW,$srcH); ImageJpeg($ni,$newFile,$rate); # 生成缩略图; imagedestroy($im); # imagedestroy(resource) 释放image关联的内存 } } } ?> 登录后复制 |

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

Laravel使用其直观的闪存方法简化了处理临时会话数据。这非常适合在您的应用程序中显示简短的消息,警报或通知。 默认情况下,数据仅针对后续请求: $请求 -

PHP客户端URL(curl)扩展是开发人员的强大工具,可以与远程服务器和REST API无缝交互。通过利用Libcurl(备受尊敬的多协议文件传输库),PHP curl促进了有效的执行

Laravel 提供简洁的 HTTP 响应模拟语法,简化了 HTTP 交互测试。这种方法显着减少了代码冗余,同时使您的测试模拟更直观。 基本实现提供了多种响应类型快捷方式: use Illuminate\Support\Facades\Http; Http::fake([ 'google.com' => 'Hello World', 'github.com' => ['foo' => 'bar'], 'forge.laravel.com' =>

您是否想为客户最紧迫的问题提供实时的即时解决方案? 实时聊天使您可以与客户进行实时对话,并立即解决他们的问题。它允许您为您的自定义提供更快的服务

文章讨论了PHP 5.3中引入的PHP中的晚期静态结合(LSB),从而允许静态方法的运行时分辨率调用以获得更灵活的继承。 LSB的实用应用和潜在的触摸

PHP日志记录对于监视和调试Web应用程序以及捕获关键事件,错误和运行时行为至关重要。它为系统性能提供了宝贵的见解,有助于识别问题并支持更快的故障排除

Laravel的服务容器和服务提供商是其架构的基础。 本文探讨了服务容器,详细信息服务提供商创建,注册,并通过示例演示了实际用法。 我们将从OVE开始
