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]);
}
}
}
[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]);
}
}
}
相关文章推荐
- yii2 文件上传文件类型限制
- YII2框架学习 安全篇(五) 文件上传漏洞
- yii2 文件上传
- yii2 单文件上传和多文件上传
- yii2框架中上传单(多)文件
- Yii2使用表单上传文件
- yii2 文件上传
- Yii2文件上传
- Yii2 上传文件
- yii2使用七牛上传图片文件
- Yii2 使用十二 配合ajaxFileUpload 上传文件
- yii2 在表单里 文件上传 为可选择,不再必须上传
- Yii2使用自带的UploadedFile实现的文件上传
- Yii2使用原生态input上传文件
- yii2文件上传
- Yii2 使用十二 配合ajaxFileUpload 上传文件
- Yii2文件上传
- yii2 文件上传
- Yii2使用表单上传文件的实例代码
- YII2---关于文件上传的小毛病