嘿,你忘记写博客了~

盛年不重来,一日难再晨,及时宜自勉,岁月不待人....

yii2文件上传

发布时间:2018-07-23编辑:windydeng浏览(476)评论览(0)

    首先我们创建model\Upload.php文件

    1. <?php  

    2. namespace backend\models;  

    3. use Yii;  

    4. use yii\web\UploadedFile;  

    5. class Upload extends \yii\db\ActiveRecord  

    6. {  

    7. /** 

    8. * @var UploadedFile|Null file attribute 

    9. */  

    10. public $file;  

    11. /** 

    12. * @return array the validation rules. 

    13. */  

    14. public function rules()  

    15. {  

    16. return [  

    17. [["file"], "file",],  

    18. ];  

    19. }  

    20. }  


    下面我们看看view层是怎么渲染的

    1. <?php  

    2. use yii\widgets\ActiveForm;  

    3. $form = ActiveForm::begin(["options" => ["enctype" => "multipart/form-data"]]); ?>  

    4. <?= $form->field($model"file")->fileInput() ?>  

    5. <button>Submit</button>  

    6. <?php ActiveForm::end(); ?>  

    最后实现controller层的实现

    1. namespace backend\controllers;  

    2. use backend\models\Upload;  

    3. use yii\web\UploadedFile;  

    4. class ToolsController extends \yii\web\Controller  

    5. {  

    6. /** 

    7. * 文件上传 

    8. * 我们这里上传成功后把图片的地址进行返回 

    9. */  

    10. public function actionTopic()  

    11.     {  

    12.          

    13.         //实例化  

    14.         $model=new Topic();  

    15.         if ($request->isPost)  

    16.         {  

    17.             $post=$request->post();  

    18.             $image= UploadedFile::getInstance($model'image');  

    19.             //文件上传存放的目录  

    20.             $dir = "../web/image/".date("Ymd");  

    21. //            var_dump($dir);die;  

    22.             if (!is_dir($dir))  

    23.             {  

    24.                 mkdir($dir);  

    25.             }else{  

    26.                 //文件名  

    27.                 $fileName = date("HiiHsHis").$image->baseName . "." .$image->extension;  

    28.                 //保存路径  

    29.                 $dir = $dir."/"$fileName;  

    30.                 //保存文件  

    31.                 $image->saveAs($dir);  

    32.             }  

    33.         }else{  

    34.   

    35.             return $this->renderPartial('save_topic',['model'=>$model]);  

    36.         }  

    37.     }  

    38. }  


关键字词:yii2文件上传