まず、yii2 でサポートされている画像アップロードを処理する方法を見てみましょう。
まず、modelUpload.php ファイルを作成します
<?php namespace backend\models; use Yii; use yii\web\UploadedFile; class Upload extends \yii\db\ActiveRecord { /** * @var UploadedFile|Null file attribute */ public $file; /** * @return array the validation rules. */ public function rules() { return [ [["file"], "file",], ]; } }
次に、ビューレイヤーがどのようにレンダリングされるかを確認します
<?php use yii\widgets\ActiveForm; $form = ActiveForm::begin(["options" => ["enctype" => "multipart/form-data"]]); ?> <?= $form->field($model, "file")->fileInput() ?> <button>Submit</button> <?php ActiveForm::end(); ?>
最後に、コントローラーレイヤーを実装します
namespace backend\controllers; use backend\models\Upload; use yii\web\UploadedFile; class ToolsController extends \yii\web\Controller { /** * 文件上传 * 我们这里上传成功后把图片的地址进行返回 */ public function actionUpload () { $model = new Upload(); $uploadSuccessPath = ""; if (Yii::$app->request->isPost) { $model->file = UploadedFile::getInstance($model, "file"); //文件上传存放的目录 $dir = "../../public/uploads/".date("Ymd"); if (!is_dir($dir)) mkdir($dir); if ($model->validate()) { //文件名 $fileName = date("HiiHsHis").$model->file->baseName . "." . $model->file->extension; $dir = $dir."/". $fileName; $model->file->saveAs($dir); $uploadSuccessPath = "/uploads/".date("Ymd")."/".$fileName; } } return $this->render("upload", [ "model" => $model, "uploadSuccessPath" => $uploadSuccessPath, ]); } }
上記はエディターが紹介するものですYii2 は、組み込みの UploadFile を使用してファイルのアップロードに関する知識を実装しています。ご質問があれば、メッセージを残してください。編集者がすぐに返信します。このウェブサイトをご利用いただき、誠にありがとうございます。
上記は、Yii2 が独自の UploadFile を使用して実装したファイルのアップロードを、関連する内容も含めて紹介しています。PHP チュートリアルに興味のある友人に役立つことを願っています。