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 相关文章推荐
php和javascript之间变量的传递实现代码
Dec 19 PHP
探讨如何在PHP开启gzip页面压缩实例
Jun 09 PHP
thinkphp 多表 事务详解
Jun 17 PHP
php根据年月获取季度的方法
Mar 31 PHP
php导入大量数据到mysql性能优化技巧
Dec 29 PHP
PHP实现获取FLV文件的时间
Feb 10 PHP
php判断文件夹是否存在不存在则创建
Apr 09 PHP
PHP文件读取功能的应用实例
May 08 PHP
PHP获取指定时间段之间的 年,月,天,时,分,秒
Jun 05 PHP
php arsort 数组降序排序详细介绍
Nov 17 PHP
php递归函数怎么用才有效
Feb 24 PHP
PHP回调函数简单用法示例
May 08 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 实现的将图片转换为TXT
2015/10/21 PHP
PHP和C#可共用的可逆加密算法详解
2015/10/26 PHP
Laravel执行migrate命令提示:No such file or directory的解决方法
2016/03/16 PHP
PHP设计模式入门之状态模式原理与实现方法分析
2020/04/26 PHP
DHTML Slide Show script图片轮换
2008/03/03 Javascript
javascript offsetX与layerX区别
2010/03/12 Javascript
基于JQuery的cookie插件
2010/04/07 Javascript
jQuery源码分析之Event事件分析
2010/06/07 Javascript
javascript返回顶部的按钮实现方法
2016/01/09 Javascript
学习JavaScript设计模式之单例模式
2016/01/19 Javascript
修复jQuery tablesorter无法正确排序的bug(加千分位数字后)
2016/03/30 Javascript
bootstrap中日历范围选择插件daterangepicker的使用详解
2018/04/17 Javascript
浅析node.js的模块加载机制
2018/05/25 Javascript
JavaScript实现五子棋游戏的方法详解
2019/07/08 Javascript
jQuery实现点击滚动到指定元素上的方法分析
2020/03/19 jQuery
ES6函数和数组用法实例分析
2020/05/23 Javascript
解决vue数据不实时更新的问题(数据更改了,但数据不实时更新)
2020/10/27 Javascript
python写的一个squid访问日志分析的小程序
2014/09/17 Python
Python列表切片用法示例
2017/04/19 Python
利用numpy+matplotlib绘图的基本操作教程
2017/05/03 Python
python scipy求解非线性方程的方法(fsolve/root)
2018/11/12 Python
python实现监控阿里云账户余额功能
2019/12/16 Python
Python try except异常捕获机制原理解析
2020/04/18 Python
Python3 requests模块如何模仿浏览器及代理
2020/06/15 Python
python能做哪些生活有趣的事情
2020/09/09 Python
Python常用数字处理基本操作汇总
2020/09/10 Python
Harman Audio官方商店:购买JBL、Harman Kardon、Infinity和AKG
2019/12/05 全球购物
简述synchronized和java.util.concurrent.locks.Lock的异同
2014/12/08 面试题
情侣吵架检讨书
2014/02/05 职场文书
小学教师国培感言
2014/02/08 职场文书
入党推优材料
2014/06/02 职场文书
承德避暑山庄导游词
2015/02/03 职场文书
红色革命电影观后感
2015/06/18 职场文书
廉政党课工作报告案例
2019/06/21 职场文书
MySQL七大JOIN的具体使用
2022/02/28 MySQL
一篇文章弄清楚Ajax请求的五个步骤
2022/03/17 Javascript