Web 開発では、必要な機(jī)能の 1 つとして畫像のアップロードがよく使用されます。PHP をベースにしたオープンソース フレームワークである ThinkPHP は、畫像のアップロード機(jī)能を?qū)g裝するためのさまざまなメソッドを提供します。以下にThinkPHPをベースにした畫像アップロードの実裝方法を紹介します。
ステップ 1: 必要なパラメーターを構(gòu)成する
構(gòu)成ファイル config.php で、最初にアップロード ファイル パス、畫像サイズ制限、ファイル タイプ制限などのパラメーターを構(gòu)成する必要があります。具體的な構(gòu)成は次のとおりです。
return?[ ????'upload_path'?=>?'./uploads/',?//上傳文件路徑 ????'img_max_size'?=>?2?*?1024?*?1024,?//最大上傳圖片大小 ????'img_allow_types'?=>?'jpg,png,gif,jpeg',?//允許上傳的文件類型 ];
ステップ 2: 畫像アップロード コードを記述する
ThinkPHP では、upload クラスを使用して畫像アップロード機(jī)能を?qū)g裝できます。まずアップロード クラスをインポートします:
use?think\facade\Request; use?think\facade\Filesystem; class?ImageUpload { ????public?function?upload() ????{ ????????$img_file?=?Request::file('img');?//獲取上傳的圖片文件 ????????$img_path?=?config('upload_path');?//獲取上傳路徑 ????????$max_size?=?config('img_max_size');?//獲取最大文件尺寸 ????????$allow_types?=?config('img_allow_types');?//獲取允許上傳的類型 ????????//判斷上傳文件是否有效、大小是否符合、類型是否正確 ????????if?(!$img_file->isValid())?{ ????????????return?['code'?=>?1,?'msg'?=>?'上傳圖片無(wú)效']; ????????} ????????if?($img_file->getSize()?>?$max_size)?{ ????????????return?['code'?=>?2,?'msg'?=>?'上傳圖片大小超過(guò)限制']; ????????} ????????if?(!in_array($img_file->extension(),?explode(',',?$allow_types)))?{ ????????????return?['code'?=>?3,?'msg'?=>?'上傳圖片類型不支持']; ????????} ????????//上傳文件 ????????$file_info?=?$img_file->move($img_path); ????????if?($file_info?===?false)?{ ????????????return?['code'?=>?4,?'msg'?=>?'上傳圖片失敗,請(qǐng)重試']; ????????} ????????//返回上傳成功信息 ????????$file_name?=?$file_info->getSaveName(); ????????$file_url?=?Filesystem::getDiskConfig('public',?['url'?=>?'/'])->getVisibility()->url($img_path?.?$file_name); ????????return?['code'?=>?0,?'msg'?=>?'上傳圖片成功',?'url'?=>?$file_url]; ????} }
ステップ 3: 畫像アップロード コードを呼び出します
次に、コントローラーで畫像アップロード コードを呼び出し、アップロード結(jié)果を取得します:
public?function?uploadImage() { ????$result?=?(new?ImageUpload())->upload(); ????echo?json_encode($result); }
最後に、フロントエンド ページで ajax を使用して畫像ファイルをサーバーにアップロードするだけです:
<form id="image-form" action="/uploadImage" method="post" enctype="multipart/form-data"> ????<input type="file" id="img-file" name="img" accept="image/*"> ????<button type="submit">上傳</button> </form> <script> $(document).on('submit',?'#image-form',?function?(event)?{ ????event.preventDefault();? ????var?formData?=?new?FormData(document.getElementById('image-form')); ????$.ajax({ ????????url:?'/uploadImage', ????????type:?'post', ????????data:?formData, ????????contentType:?false, ????????processData:?false, ????????dataType:?'json', ????????success:?function?(res)?{ ????????????//處理上傳結(jié)果 ????????}, ????????error:?function?(xhr,?textStatus,?errorThrown)?{ ????????????console.log(errorThrown); ????????} ????}); }); </script>
要約すると、上記の手順により、ThinkPHP に基づく畫像アップロード機(jī)能が完成しました。 。
以上がthinkphpで寫真をアップロードする方法の詳細(xì)內(nèi)容です。詳細(xì)については、PHP 中國(guó)語(yǔ) Web サイトの他の関連記事を參照してください。

ホットAIツール

Undress AI Tool
脫衣畫像を無(wú)料で

Undresser.AI Undress
リアルなヌード寫真を作成する AI 搭載アプリ

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

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無(wú)料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡(jiǎn)単に交換できます。

人気の記事

ホットツール

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

SublimeText3 中國(guó)語(yǔ)版
中國(guó)語(yǔ)版、とても使いやすい

ゼンドスタジオ 13.0.1
強(qiáng)力な PHP 統(tǒng)合開発環(huán)境

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

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