먼저 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, ]); } }
이상은 에디터가 소개한 자체 UploadedFile을 사용하여 Yii2에서 구현한 파일 업로드에 대한 지식이길 바랍니다. 질문이 있으시면 메시지를 남겨주시면 편집자가 제 시간에 답변해 드리겠습니다. 이 웹사이트를 지원해주셔서 진심으로 감사드립니다!
위 내용은 관련 내용을 포함하여 Yii2가 자체 UploadedFile을 사용하여 구현한 파일 업로드를 소개합니다. PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.