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

yii2文件上传

2017-11-29 09:54 459 查看
首先我们创建model\Upload.php文件

[php]
view plain
copy

<?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]
view plain
copy

<?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层的实现

[php]
view plain
copy

namespace backend\controllers;  
use backend\models\Upload;  
use yii\web\UploadedFile;  
class ToolsController extends \yii\web\Controller  
{  
/** 
* 文件上传 
* 我们这里上传成功后把图片的地址进行返回 
*/  
public function actionTopic()  
    {  
         
        //实例化  
        $model=new Topic();  
        if ($request->isPost)  
        {  
            $post=$request->post();  
            $image= UploadedFile::getInstance($model, 'image');  
            //文件上传存放的目录  
            $dir = "../web/image/".date("Ymd");  
//            var_dump($dir);die;  
            if (!is_dir($dir))  
            {  
                mkdir($dir);  
            }else{  
                //文件名  
                $fileName = date("HiiHsHis").$image->baseName . "." .$image->extension;  
                //保存路径  
                $dir = $dir."/". $fileName;  
                //保存文件  
                $image->saveAs($dir);  
            }  
        }else{  
  
            return $this->renderPartial('save_topic',['model'=>$model]);  
        }  
    }  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: