您的位置:首页 > 编程语言 > PHP开发

yii文件上传

2017-08-30 16:34 134 查看
1.创建Model类 UploadForm.php

<?php

namespace app\models;

use yii\base\Model;

class UploadForm extends Model

{

    public $imageFile;

    //制定规则

    public function rules()

    {

        return [

            [['imageFile'], 'file', 'skipOnEmpty' => false, 'extensions' => 'png, jpg'],

        ];

    }

    

    //上传

    public function upload()

    {

        $this->imageFile->saveAs('uploads/' . $this->imageFile->baseName . '.' . $this->imageFile->extension);

        return true;

    }

}

2.在web目录下创建uploads文件夹

3.创建控制器

<?php

namespace app\controllers;

use Yii;

use yii\web\Controller;

use app\models\UploadForm;

use yii\web\UploadedFile;

class IndexController extends Controller{

    //上传方法

    public function actionUpload()

    {

        //实例化上传model类

        $model = new UploadForm();

        

        if(Yii::$app->request->isPost){

            //取出model中的图片信息

            $model->imageFile = UploadedFile::getInstance($model,'imageFile');

            if($model->upload()){

                //上传成功添加入库

                $img = $model->imageFile->name;

                //添加入库

                $res = Yii::$app->db->createCommand()->insert('photo',['img'=>$img])->execute();

                

                //判断是否上传成功

                if($res){

                    return $this->redirect(['list']);

                }

                return $this->goBack();

            }

        }

        return $this->render('index', ['model' => $model]);

    }

}

4.视图

<?php

use yii\widgets\ActiveForm;

?>

<h2>上传图片</h2>

<?php $form = ActiveForm::begin(['options' => ['enctype' => 'multipart/form-data']]) ?>

    <?= $form->field($model, 'imageFile')->fileInput(['class'=>'btn'])->label("上传") ?>

    <button class="btn">上传</button>

<?php ActiveForm::end() ?>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: