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

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

Jun 13, 2016 pm 12:01 PM
gt image nbsp quot

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 パスの統合管理を容易にするためです)

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

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

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




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

コードをコピー

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

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



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

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


<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<style type="text/css">
    #img{height:22px; border:#000 2px solid}
    #button{height:30px; width:100px;}
</style>
</head>
<body>
    <div class="result" >上传允许文件类型:gif png jpg 图像文件,并生成2张缩略图,其中大图带水印,生成后会删除原图。</div><br>
<notempty name="data"><img src="__UPLOAD__/m_{$data.image}" /> thinkphp は、UploadFile.class.php 画像アップロードのパフォーマンスを実装します。 <form action="__URL__/upload" method="post" enctype="multipart/form-data">
<input type="file " name="image" id="img"/>
<input type="submit" value="アップロード" id="button">
</form>
< /body>
</html>

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

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

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

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

( ){ }

}




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

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


<?php
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-&gt ;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 までご連絡ください。

ホットな記事タグ

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

解決策: 組織では PIN を変更する必要があります。 解決策: 組織では PIN を変更する必要があります。 Oct 04, 2023 pm 05:45 PM

解決策: 組織では PIN を変更する必要があります。

Windows 11 でウィンドウの境界線の設定を調整する方法: 色とサイズを変更する Windows 11 でウィンドウの境界線の設定を調整する方法: 色とサイズを変更する Sep 22, 2023 am 11:37 AM

Windows 11 でウィンドウの境界線の設定を調整する方法: 色とサイズを変更する

Windows 11でタイトルバーの色を変更するにはどうすればよいですか? Windows 11でタイトルバーの色を変更するにはどうすればよいですか? Sep 14, 2023 pm 03:33 PM

Windows 11でタイトルバーの色を変更するにはどうすればよいですか?

Windows 11 でタスクバーのサムネイル プレビューを有効または無効にする方法 Windows 11 でタスクバーのサムネイル プレビューを有効または無効にする方法 Sep 15, 2023 pm 03:57 PM

Windows 11 でタスクバーのサムネイル プレビューを有効または無効にする方法

Windows 11/10修復におけるOOBELANGUAGEエラーの問題 Windows 11/10修復におけるOOBELANGUAGEエラーの問題 Jul 16, 2023 pm 03:29 PM

Windows 11/10修復におけるOOBELANGUAGEエラーの問題

Huawei GT3 ProとGT4の違いは何ですか? Huawei GT3 ProとGT4の違いは何ですか? Dec 29, 2023 pm 02:27 PM

Huawei GT3 ProとGT4の違いは何ですか?

Windows 11 でのディスプレイ スケーリング ガイド Windows 11 でのディスプレイ スケーリング ガイド Sep 19, 2023 pm 06:45 PM

Windows 11 でのディスプレイ スケーリング ガイド

Windows 11で明るさを調整する10の方法 Windows 11で明るさを調整する10の方法 Dec 18, 2023 pm 02:21 PM

Windows 11で明るさを調整する10の方法

See all articles