Yii2使用自带的UploadedFile实现的文件上传


Posted in PHP onJune 20, 2016

我们先来看看在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实现的文件上传的相关知识,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

PHP 相关文章推荐
攻克CakePHP系列二 表单数据显示
Oct 22 PHP
如何用C语言编写PHP扩展的详解
Jun 13 PHP
php全角字符转换为半角函数
Feb 07 PHP
php switch语句多个值匹配同一代码块的实现
Mar 03 PHP
PHP实现的汉字拼音转换和公历农历转换类及使用示例
Jul 01 PHP
PHP中单引号与双引号的区别分析
Aug 19 PHP
Apache连接PHP后无法启动问题解决思路
Jun 18 PHP
smarty高级特性之过滤器的使用方法
Dec 25 PHP
PHP面向对象自动加载机制原理与用法分析
Oct 14 PHP
php curl中gzip的压缩性能测试实例分析
Nov 08 PHP
php中str_pad()函数用法分析
Mar 28 PHP
PHP检查文件是否存在,不存在自动创建及读取文件内容操作示例
Jan 23 PHP
Yii2组件之多图上传插件FileInput的详细使用教程
Jun 20 #PHP
PHP开发制作一个简单的活动日程表Calendar
Jun 20 #PHP
php中的登陆login实例代码
Jun 20 #PHP
Laravel中使用FormRequest进行表单验证方法及问题汇总
Jun 19 #PHP
php打乱数组二维数组多维数组的简单实例
Jun 17 #PHP
PHP 将数组打乱 shuffle函数的用法及简单实例
Jun 17 #PHP
PHP 数组基本操作方法详解
Jun 17 #PHP
You might like
PHP运行时强制显示出错信息的代码
2011/04/20 PHP
php中最简单的字符串匹配算法
2014/12/16 PHP
php基于session实现数据库交互的类实例
2015/08/03 PHP
Javascript-Mozilla和IE中的一个函数直接量的问题分析
2007/08/12 Javascript
跨域传值即主页面与iframe之间互相传值
2013/12/09 Javascript
深入分析jquery解析json数据
2014/12/09 Javascript
jQuery异步提交表单的两种方式
2016/09/13 Javascript
jquery pagination插件动态分页实例(Bootstrap分页)
2016/12/23 Javascript
bootstrap制作jsp页面(根据值让table显示选中)
2017/01/05 Javascript
微信小程序 label 组件详解及简单实例
2017/01/10 Javascript
轻松理解Javascript变量的相关问题
2017/01/20 Javascript
JS验证不重复验证码
2017/02/10 Javascript
nodejs连接mysql数据库简单封装示例-mysql模块
2017/04/10 NodeJs
封装运动框架实战左右与上下滑动的焦点轮播图(实例)
2017/10/17 Javascript
简单实现jQuery弹窗效果
2017/10/30 jQuery
vue2.0移动端滑动事件vue-touch的实例代码
2018/11/27 Javascript
基于Vue组件化的日期联动选择器功能的实现代码
2018/11/30 Javascript
d3绘制基本的柱形图的实现代码
2018/12/12 Javascript
微信小程序中使用 async/await的方法实例分析
2020/05/06 Javascript
Vue SSR 即时编译技术的实现
2020/05/06 Javascript
[00:34]TI7不朽珍藏III——地穴编织者不朽展示
2017/07/15 DOTA
python中的sort方法使用详解
2014/07/25 Python
Python3中多线程编程的队列运作示例
2015/04/16 Python
Python实现的插入排序算法原理与用法实例分析
2017/11/22 Python
python学习笔记--将python源文件打包成exe文件(pyinstaller)
2018/05/26 Python
基于python操作ES实例详解
2019/11/16 Python
Django 权限管理(permissions)与用户组(group)详解
2020/11/30 Python
CSS3实现背景透明文字不透明的示例代码
2018/06/25 HTML / CSS
SteelSeries赛睿官网:游戏外设和配件的领先制造商(耳机、键盘、鼠标和鼠标垫)
2018/06/17 全球购物
英国知名小木屋定制网站:Tiger Sheds
2020/03/06 全球购物
软件测试面试题
2014/01/05 面试题
日语专业毕业生求职信
2013/12/04 职场文书
母亲节感恩寄语
2014/02/21 职场文书
竞聘报告优秀范文
2014/11/06 职场文书
Nginx 负载均衡是什么以及该如何配置
2021/03/31 Servers
使用Golang的channel交叉打印两个数组的操作
2021/04/29 Golang