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 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック

Laravelは、直感的なフラッシュメソッドを使用して、一時的なセッションデータの処理を簡素化します。これは、アプリケーション内に簡単なメッセージ、アラート、または通知を表示するのに最適です。 データは、デフォルトで次の要求のためにのみ持続します。 $リクエスト -

PHPクライアントURL(CURL)拡張機能は、開発者にとって強力なツールであり、リモートサーバーやREST APIとのシームレスな対話を可能にします。尊敬されるマルチプロトコルファイル転送ライブラリであるLibcurlを活用することにより、PHP Curlは効率的なexecuを促進します

PHPロギングは、Webアプリケーションの監視とデバッグ、および重要なイベント、エラー、ランタイムの動作をキャプチャするために不可欠です。システムのパフォーマンスに関する貴重な洞察を提供し、問題の特定に役立ち、より速いトラブルシューティングをサポートします

Laravelは簡潔なHTTP応答シミュレーション構文を提供し、HTTP相互作用テストを簡素化します。このアプローチは、テストシミュレーションをより直感的にしながら、コード冗長性を大幅に削減します。 基本的な実装は、さまざまな応答タイプのショートカットを提供します。 Illuminate \ support \ facades \ httpを使用します。 http :: fake([[ 'google.com' => 'hello world'、 'github.com' => ['foo' => 'bar']、 'forge.laravel.com' =>

顧客の最も差し迫った問題にリアルタイムでインスタントソリューションを提供したいですか? ライブチャットを使用すると、顧客とのリアルタイムな会話を行い、すぐに問題を解決できます。それはあなたがあなたのカスタムにより速いサービスを提供することを可能にします

記事では、PHP 5.3で導入されたPHPの後期静的結合(LSB)について説明し、より柔軟な継承を求める静的メソッドコールのランタイム解像度を可能にします。 LSBの実用的なアプリケーションと潜在的なパフォーマ

この記事では、フレームワークにカスタム機能を追加し、アーキテクチャの理解、拡張ポイントの識別、統合とデバッグのベストプラクティスに焦点を当てています。
