ホームページ  >  記事  >  バックエンド開発  >  thinkphp は、UploadFile.class.php 画像アップロードのパフォーマンスを実装します。

thinkphp は、UploadFile.class.php 画像アップロードのパフォーマンスを実装します。

WBOY
WBOYオリジナル
2016-06-13 12:01:37903ブラウズ

thinkphp は、UploadFile.class.php 画像アップロード関数を実装します。

画像のアップロードは、Web サイトで非常に一般的な機能です。ThinkPHP には、独自の画像アップロード クラス (UploadFile.class.php) と画像モデル クラス (Image.class) もあります。 .php)。画像アップロード機能を実装すると便利です。実装方法は次のとおりです。

1. まずテーブル

を作成する必要があります。 コードをコピーします コードは次のとおりです:

CREATE TABLE IF NOT EXISTS `tp_image` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`image` varchar(200 ) NOT NULL,
`create_time` int(11) NOT NULL,
主キー (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

2. 次に、conf ファイルに設定を追加します (最後の設定はオプションであり、URL パスの統合管理を容易にするためです)

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

return array(
'URL_MODEL' => 2, // 環境が PATHINFO をサポートしていない場合は、3 に設定してください
'DB_TYPE' => ; ' mysql',
'DB_HOST' => 'localhost',
'DB_NAME' => 'thinkphp',
'DB_USER' => => ; '',
'DB_PORT' => '3306',
'DB_PREFIX' => //ページのデバッグ詳細を表示

'TMPL_PARSE_STRING' => array( // アドレス置換、ルート ディレクトリの Upload ディレクトリの代わりに _UPLOAD_ ディレクトリを使用します
),
);
?>




3. 画像モジュールを追加します。 (名前は任意で構いません)

コードをコピー

コードは次のとおりです: class ImageAction extends Action{ 🎝>*/

public functionindex(){
$image=M('Image') () ; //最後にアップロードされた画像を取得します
$this->assign('data',$data);
$this->display();
}



4. 対応するインデックスを作成します。ファイルを表示 (index.html)

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






Insert title here



   
上传允许文件类型:gif png jpg 图像文件,并生成2张缩略图,其中大图带水印,生成后会删除原图。


thinkphp は、UploadFile.class.php 画像アップロードのパフォーマンスを実装します。




< /body>

5. 画像を選択してアップロードボタンをクリックすると、画像モジュールのアップロードメソッドにジャンプします。 Image モジュールにそのようなメソッドはまだないので、それを作成します

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

class ImageAction extends Action{ =$image ->order('create_time desc')->find(); //最後にアップロードされた画像を取得します

var_dump($data);
$this->assign('data ',$data);
$this->display();
} }

( ){ }

}




6. 送信内容が NULL でない場合は、画像アップロード関数を実装する _upload メソッドにジャンプします

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


class ImageAction extends Action{ Image') ; $ this->assign('data',$data); _upload メソッド
public function Upload(); {$ this-&gt; _upload();


/** *
* 写真のアップロードを達成
* /
パブリック関数 _upload () {
Import ('@.ORG.UPLOADFILE')
// クラスのインポートとアップロード
$upload = new UploadFile(); $upload->allowExts =explode (',', 'jpg,gif,png,jpeg');
//添付ファイルのアップロード ディレクトリを設定します
サムネイル図画像ファイルに対して有効です
$upload->thumb = true
// 参照画像ライブラリのパスを設定します
$upload-> 🎜> $ Upload->thumbMaxWidth = '400,100';
🎜> $upload-> ;saveRule = 'uniqid' ;
アップロードが失敗した場合
if (!$upload ->upload( ))

else
{
//アップロードされたファイル情報
$ uploadlist = $ upload-&gt; getuploadfileinfo();

>import( '@。org.image') ;画像:水($uploadList[0]['savepath'] . 'm_' . $uploadList[0]['savename'], APP_PATH.'Tpl/Public/Images/logo.png');

//フィールドにイメージ名を割り当てます image
$_POST['image'] = $uploadList[0]['savename'];
}
$model = M('image' );
//現在のデータ オブジェクトを保存します
$data['image'] = $_POST['image'];
$data['create_time'] = NOW_TIME;
$list = $model->add ($data);
if ($list !== false)
{
$this->success('画像が正常にアップロードされました!');
}
else
{
- 🎜>アップロードは成功し、2 つのサムネイルが生成されました

説明する必要があるのは次のとおりです:

ThinkPHP 独自の画像アップロード クラス ( UploadFile.class.php) と画像モデル クラス (Image.class.php) を使用するには、ThinkPHP パッケージのフルバージョンが必要です。

そうでない場合は、Lib にフォルダー (ORG) を作成し、公式 Web サイトにアクセスして拡張パックをダウンロードし、これら 2 つのファイルを ORG フォルダーに配置する必要があります。

私のケースは 2 番目です

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。