Yii2使用自带的UploadedFile实现的文件上传
程序员文章站
2024-02-21 21:59:22
我们先来看看在yii2中支持的图片上传怎么进行处理的。
首先我们创建model\upload.php文件
我们先来看看在yii2中支持的图片上传怎么进行处理的。
首先我们创建model\upload.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",], ]; } }
下面我们看看view层是怎么渲染的
<?php use yii\widgets\activeform; $form = activeform::begin(["options" => ["enctype" => "multipart/form-data"]]); ?> <?= $form->field($model, "file")->fileinput() ?> <button>submit</button> <?php activeform::end(); ?>
最后实现controller层的实现
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使用自带的uploadedfile实现的文件上传的相关知识,希望对大家有所帮助