ホームページ > バックエンド開発 > PHPチュートリアル > ThinkPHP ファイルアップロード class_PHP チュートリアルの再版と共有

ThinkPHP ファイルアップロード class_PHP チュートリアルの再版と共有

WBOY
リリース: 2016-07-20 11:10:54
オリジナル
878 人が閲覧しました

アップロード クラスは、ORG クラス ライブラリ パッケージの Net.UpdateFile クラスを使用します。アップロード クラスの最新バージョンには、次の関数が含まれています (一部の関数は、ThinkPHP システム内の他のクラス ライブラリと組み合わせる必要があります)。アップロード機能

2. バッチアップロードのサポート

4. カスタムパラメータアップロードのサポート

6. アップロードの種類、添付ファイルのサイズ、アップロードのサポートパス定義

7. アップロードされたファイルを保存するためのハッシュまたは日付サブディレクトリをサポートします

9. アップロードされたファイルの名前付けルールをサポートします

10. アップロードされたファイルのハッシュ検証をサポートします

これは、ThinkPHP のアップロード機能を使用する場合の特別な扱いです。たとえば、以下は添付ファイルのアップロードを伴うフォーム送信です:

コードは次のとおりです

コードをコピー


コードは次のとおりです



enctype="multipart/form-data" を Form タグに追加する必要があることに注意してください。ファイルをアップロードする前のフォーム。フォームは現在のモジュールのアップロード操作メソッドに送信されるため、モジュール クラスに次のアップロード メソッドを追加できます:


コードをコピー

Public function Upload(){ import(“ORG .Net.UploadFile");$upload = new UploadFile(); // アップロード クラスをインスタンス化します$upload-> allowExts = array('jpg ', 'gif', 'png', 'jpeg'); // 添付ファイルのアップロード タイプを設定しますif(!$upload ->upload()) { //アップロード エラー メッセージ $this->error($upload->getErrorMsg());}else{ //アップロードが成功し、アップロードされるファイル情報コードは次のとおりです
$upload->maxSize = 3145728; // 添付ファイルのアップロード サイズを設定します$upload->savePath = './Public/Uploads/'; // 添付ファイルを設定しますアップロード ディレクトリ
$info = $upload->getUploadFileInfo();
}
// 添付データを含むフォームデータを保存
$User = M(“User”) // ユーザーオブジェクトをインスタンス化
$User->create( ); // データ オブジェクトを作成します
$User->photo = $info[0]["savename"] // アップロードされた写真を必要に応じて保存します
$User->add();ユーザーデータをデータベースに保存します
$ this->success("データは正常に保存されました!");
}






まず、アップロードクラスをインスタンス化します


コードをコピーします

import("ORG.Net. UploadFile");$upload = new UploadFile(); // アップロード クラスをインスタンス化します

アップロード クラスをインスタンス化した後、いくつかのアップロード属性 (パラメーター) を設定できます:

maxSize: ファイル アップロードの最大ファイル サイズ (バイト単位) デフォルトは -1 で、サイズ制限はありません。

savePath: ファイル保存パス。空白のままにした場合、UPLOAD_PATH 定数で定義されたパスが使用されます。

saveRule: アップロードされたファイルの保存ルールは、パラメーターのない関数名である必要があります。たとえば、時間、uniqid com_create_guid などです。 、などですが、保証する必要があります 生成されるファイル名は一意であり、デフォルトは uniqid です

hashType: アップロードされたファイルのハッシュ検証方法、デフォルトは md5_file です

autoCheck: 添付ファイルを自動的に検出するかどうか、デフォルトは自動検出

uploadReplace: 同じ名前のファイルが上書きされるかどうか

allowExts: アップロードが許可されるファイルのサフィックス (制限がない場合は空白のまま)、配列設定を使用、デフォルトは空の配列

allowTypes: 許可されるファイルの種類アップロードする場合 (制限がない場合は空白のままにします)、配列設定を使用します。デフォルトは空の配列です。

thumb: 画像ファイルのサムネイルを処理する必要があるかどうか。 デフォルトは false です。

thumbMaxWidth: サムネイルの最大幅。複数のサムネイルを区切る場合はカンマを使用します。

thumbMaxHeight: サムネイルの最大の高さを指定します。

thumbPrefix: サムネイルのファイルプレフィックス、デフォルトはthumb_です (複数のサムネイルサイズを設定する場合は、複数のサムネイルを設定してください)。

thumbSuffix: サムネイルのファイル拡張子、デフォルトは空です (複数のサムネイル サイズを設定する場合、サムネイル サイズが大きい場合は、ここで複数の拡張子を設定してください)

thumbPath: サムネイルの保存パス (場合は、サムネイルの保存パス)空白のままにする場合は、ファイルアップロードディレクトリ自体を取得します

thumbFile: サムネイルのファイル名を指定します

thumbRemoveOrigin: サムネイル生成後にサムネイルを削除するかどうか元の画像

autoSub: アップロードされたファイルを保存するためにサブディレクトリを使用するかどうか

subType : サブディレクトリの作成方法、デフォルトはハッシュ、ハッシュまたは日付に設定可能

dateFormat: サブディレクトリモードがdateの場合の日付形式を指定します

hashLevel: デフォルトではサブディレクトリの保存レベルは1階層です。直接設定します。例:

コードは次のとおりです コードをコピー$upload->thumb = true$upload->thumbMaxWidth = “50,200″$upload->thumbMaxHeight = 「50,200」



サムネイルを生成する機能には、Image クラスのサポートが必要です。

アップロードパラメータを設定した後、UploadFile クラスのアップロードメソッドを呼び出して添付ファイルをアップロードできます。失敗した場合は false を返し、アップロードが成功した場合は getErrorMsg メソッドを使用してエラーメッセージを取得します。 getUploadFileInfo 情報リストを呼び出して添付ファイルを正常にアップロードしました。したがって、getUploadFileInfo メソッドの戻り値は、アップロードされた添付ファイル情報を各要素とする配列になります。各添付ファイル情報は、次の情報を記録する配列です:

key: 添付ファイルをアップロードするためのフォームの名前

savepath: アップロードされたファイルの保存パス

name: アップロードされたファイルの元の名前

savename: アップロードされたファイルの名前 保存名

size: アップロードされたファイルのサイズ

type: アップロードされたファイルの MIME タイプ

extension: アップロードされたファイルのサフィックス タイプ

hash: ハッシュ検証アップロードされたファイルの文字列

ファイルが正常にアップロードされたら、これらの添付ファイル情報を渡すことができます。これらの添付ファイル情報は、現在のデータ テーブルや別の添付ファイル データ テーブルへの保存など、他のデータ アクセス操作に使用できます。

複数のファイルをアップロードする必要がある場合は、フォームを変更して

XML/HTMLコード

を次のように入力するだけですコードをコピー

XML/HTMLコードに変更

コードは以下の通りですコードをコピー





マルチの 2 つのメソッドのファイル アップロード クラス-添付ファイルアップロードシステムは自動的に認識できます。


http://www.bkjia.com/PHPjc/444697.htmlwww.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/444697.html技術記事アップロード クラスは、ORG クラス ライブラリ パッケージの Net.UpdateFile クラスを使用します。アップロード クラスの最新バージョンには、次の関数が含まれています (一部の関数は、ThinkPHP システム内の他のクラス ライブラリと組み合わせる必要があります)。 1. 基本的なアップロード関数 2。 ...
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート