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 相关文章推荐
第1次亲密接触PHP5(1)
Oct 09 PHP
PHP中路径问题的解决方案
Oct 09 PHP
php Http_Template_IT类库进行模板替换
Mar 19 PHP
php程序的国际化实现方法(利用gettext)
Aug 14 PHP
php文件上传的简单实例
Oct 19 PHP
php中Ctype函数用法详解
Dec 09 PHP
PHP中iconv函数知识汇总
Jul 02 PHP
Yii2框架中日志的使用方法分析
May 22 PHP
Yii2第三方类库插件Imagine的安装和使用
Jul 06 PHP
基于Laravel5.4实现多字段登录功能方法示例
Aug 11 PHP
PHP对象的浅复制与深复制的实例详解
Oct 26 PHP
PHP7创建销毁session的实例方法
Feb 03 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
德生PL330的评价与改造
2021/03/02 无线电
如何在PHP中使用Oracle数据库(2)
2006/10/09 PHP
基于PHP CURL获取邮箱地址的详解
2013/06/03 PHP
PHP实现文件下载断点续传详解
2014/10/15 PHP
PHP的Socket通信之UDP通信实例
2015/07/02 PHP
给WordPress的编辑后台添加提示框的代码实例分享
2015/12/25 PHP
详解PHP防止盗链防止迅雷下载的方法
2017/04/26 PHP
学习ExtJS(一) 之基础前提
2009/10/07 Javascript
ext 列表页面关于多行查询的办法
2010/03/25 Javascript
通过遮罩层实现浮层DIV登录的js代码
2014/02/07 Javascript
js 触发select onchange事件代码
2014/03/20 Javascript
深入浅析JavaScript字符串操作方法 slice、substr、substring及其IE兼容性
2015/12/16 Javascript
Bootstrap打造一个左侧折叠菜单的系统模板(二)
2016/05/17 Javascript
js 文字超出长度用省略号代替,鼠标悬停并以悬浮框显示实例
2016/12/06 Javascript
BootStrap Fileinput初始化时的一些参数
2016/12/30 Javascript
Bootstrap导航条鼠标悬停下拉菜单
2017/01/04 Javascript
基于bootstrap按钮式下拉菜单组件的搜索建议插件
2017/03/25 Javascript
jQuery实现带右侧索引功能的通讯录示例【附源码下载】
2018/04/17 jQuery
JS实现求5的阶乘示例
2019/01/21 Javascript
Flutter部件内部状态管理小结之实现Vue的v-model功能
2019/06/11 Javascript
使用Python生成随机密码的示例分享
2016/02/18 Python
Python3.6正式版新特性预览
2016/12/15 Python
详解python中的json的基本使用方法
2016/12/21 Python
Appium+python自动化之连接模拟器并启动淘宝APP(超详解)
2019/06/17 Python
Python模块相关知识点小结
2020/03/09 Python
python开发实例之python使用Websocket库开发简单聊天工具实例详解(python+Websocket+JS)
2020/03/18 Python
Python如何安装第三方模块
2020/05/28 Python
在keras中实现查看其训练loss值
2020/06/16 Python
python中取绝对值简单方法总结
2020/07/24 Python
浅谈Html5中视频 音频标签 进度条的问题
2016/07/26 HTML / CSS
西班牙创意礼品和小工具网上商店:Curiosite
2016/07/26 全球购物
Currentbody美国/加拿大:美容仪专家
2020/03/09 全球购物
师范毕业生求职自荐信
2013/09/25 职场文书
酒店餐厅2014重阳节活动策划方案
2014/09/16 职场文书
学生会个人总结范文
2015/02/15 职场文书
导游词之南京莫愁湖公园
2019/11/13 职场文书