ホームページ > バックエンド開発 > PHPチュートリアル > ThinkPHP でのファイル アップロード メソッドのカプセル化の例、_PHP チュートリアル

ThinkPHP でのファイル アップロード メソッドのカプセル化の例、_PHP チュートリアル

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
リリース: 2016-07-13 10:15:31
オリジナル
805 人が閲覧しました

ThinkPHP のファイルアップロードメソッドの例をカプセル化します、

この記事の例では、ThinkPHP をカプセル化し、参考のために全員と共有するファイル アップロード メソッドについて説明します。詳細は以下の通りです

最近、WBlogのアップロード機能が最適化されました。改良されたアップロード機能では、サムネイルのアップロード、画像のアップロード、透かしの生成、ファイルのアップロードが実現でき、アップロードされる添付ファイルのサイズ(ファイルサイズ)、タイプ(ファイルタイプ)、透かし(画像の場合)をバックグラウンドで設定できるようになりました。さらに、アップロードされたファイルは、対応するフォルダーに分類して保存できるため、管理が容易になります。

以下は、改善されたアップロード機能の簡単な説明です。

サムネイルのアップロード

以前のサムネイルアップロード機能はKindEditorのアップロードコンポーネントを使用していましたが、アップロード前に画像がサムネイル化されていない限り、アップロード機能は何をアップロードしても、システムを通じてサムネイルのサイズを設定できます。元の画像がどれほど大きくても、設定されたサイズの画像が生成され、元の画像が自動的に削除されるため、スパム情報の蓄積を効果的に削減できます。アップロードしたサムネイルは自動的にThumbフォルダーに保存されます

写真のアップロード

写真をアップロードすると、必要に応じて、写真のサイズ、アップロードする写真の種類を設定し、透かしを追加できます。

ファイルアップロード

圧縮ファイル、ドキュメントファイルなど。必要に応じてアップロードファイルの種類とサイズを追加できます。

透かしを追加

アップロードした写真に透かしを追加します。

上記のアップロード関数をモデル クラス AttachModel.class.php にカプセル化し、それを行うために 2 つのメソッドを使用しました:

コードをコピーします コードは次のとおりです:

/**
* 添付ファイルのアップロード: 写真、サムネイル、ファイルをアップロードします
* @param string $model アップロードするモジュール
* @param bool $type アップロードされたファイルのタイプ: image (画像); file (ファイル); ​*/
                                                パブリック関数アップロード($model = null, $type = 'image'){
//アップロードクラスをインポートします
import('ORG.NET.UploadFile');
$upload = new UploadFile();
$ Upload-& gt; saverule = 'uniqid' // アップロードファイルのルールを設定します
; $ Upload-& gt; maxsize = c ('maxsize')*1024*1024; // アップロードファイルのサイズ
$ upload-> Alowexts = Explode( '、'、c( 'AllowExts'));                                                           if ($model){ $upload->savePath = './Public/Uploads/'.$model.'/'; If (!file_exists($upload->savePath)) {
mkdir($upload->savePath);                                                                                                                                                                             $upload->savePath = './Public/Uploads/Thumb/'; If (!file_exists($upload->savePath)) {
mkdir($upload->savePath);                                                                                                                                                 If (in_array($type,array('image','thumb'))){
$upload->thumb = true;                                                                                                                                                                                                                                                                  $upload->thumbPrefix = 'wb_'; $upload->thumbMaxWidth = $type=='thumb' ? C('THUMB_W') :C('IMAGE_W');//サムネイルの幅 $ upload-> thumbmax​​height = $ == 'thumb'( 'thumb_h'):c( 'image_h'); // sumbnail height                                                                                                                                                  If (!$upload->upload()) {
return $upload->getErrorMsg();                                                                                                     $uploadlist = $upload->getUploadFileInfo(); If(C('ISWATER') && $type=='image'){
import('ORG.Util.Image'); //m_thumbnail にウォーターマークを追加, Image::water('元のファイル名', 'ウォーターマーク画像アドレス')foreach ($uploadlist as $key => $value){ Image::water($value['savepath'] . 'wb_' . $value['savename'], './Public/admin/images/water.png');                                                                                                                                                                                                                           If (in_array($type,array('画像','ファイル'))){
return $this->_add($uploadlist,$model);                                                                                                     return $ uploadlist [0] ['savename']; //サムネイル保存名を返します                                                                                       }
/*
* アップロードされた添付ファイルは、添付に必要なデータに統合され、テーブルに格納され、配列として返されます
* */
プライベート関数 _add($uploadlist,$module=''){
//$j = count($uploadlist);
$v = array();
foreach ($uploadlist as $key => $value){
                                                                       $ v [$ key] ['name'] $v[$key]['savename'] $ v [$ key] ['SavePath'] $ v [$ key] ['size'] $ v [$ key] ['userid'] $v[$key][= 」 _ $ v [$ key] ['alt'] $ v [$ key] ['module'] $ v [$ key] ['Recordid'] $this->add($v[$key]); If ($ this-& gt; サム) {
                                                                 $ v [$ key] ['prefix']                                                                             $v[$key]['id'] = M('Attach')->getLastInsID();                                                                        $v を返します。 }

この記事で説明した内容が、皆様の ThinkPHP フレームワーク プログラミングに役立つことを願っています。

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/904008.html技術記事 ThinkPHP をカプセル化するファイル アップロード メソッドの例 この記事では、ThinkPHP をカプセル化するファイル アップロード メソッドの例について説明します。参考のために共有します。詳細は以下の通りです: 最近、...
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート