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 相关文章推荐
一个用于mysql的数据库抽象层函数库
Oct 09 PHP
PHP 采集程序 常用函数
Dec 18 PHP
PHP文件打开、关闭、写入的判断与执行代码
May 24 PHP
ajax php传递和接收变量实现思路及代码
Dec 19 PHP
CodeIgniter实现更改view文件夹路径的方法
Jul 04 PHP
PHP调用Linux命令权限不足问题解决方法
Feb 07 PHP
laravel5创建service provider和facade的方法详解
Jul 26 PHP
PHP简单创建压缩图的方法
Aug 24 PHP
浅谈PHP的排列组合(如输入a,b,c 输出他们的全部组合)
Mar 14 PHP
PHP实现对文件锁进行加锁、解锁操作的方法
Jul 04 PHP
PHP使用Curl实现模拟登录及抓取数据功能示例
Apr 27 PHP
tp5.1 框架数据库-数据集操作实例分析
May 26 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开发文件系统实例讲解
2006/10/09 PHP
详解PHP内置访问资源的超时时间 time_out file_get_contents read_file
2013/06/03 PHP
图文详解PHP环境搭建教程
2016/07/16 PHP
PHP中静态变量的使用方法实例分析
2016/12/01 PHP
PHP实现转盘抽奖算法分享
2020/04/15 PHP
js实现跨域的方法实例详解
2015/06/24 Javascript
JS文字球状放大效果代码分享
2015/08/19 Javascript
js实现图片放大和拖拽特效代码分享
2015/09/05 Javascript
详解Angular中$cacheFactory缓存的使用
2016/08/19 Javascript
js数组与字符串常用方法总结
2017/01/13 Javascript
微信小程序 合法域名校验出错详解及解决办法
2017/03/09 Javascript
javascript+jQuery实现360开机时间显示效果
2017/11/03 jQuery
vue.js实现只弹一次弹框
2018/01/29 Javascript
Vue2 模板template的四种写法总结
2018/02/23 Javascript
使用vue-cli(vue脚手架)快速搭建项目的方法
2018/05/21 Javascript
Vue Extends 扩展选项用法完整实例
2019/09/17 Javascript
JavaScript实现文件下载并重命名代码实例
2019/12/12 Javascript
JS轮播图的实现方法
2020/08/24 Javascript
vue 插槽简介及使用示例
2020/11/19 Vue.js
[08:08]2014DOTA2国际邀请赛中国区预选赛精彩TOPPLAY
2014/06/25 DOTA
[01:05:56]Liquid vs VP Supermajor决赛 BO 第二场 6.10
2018/07/04 DOTA
[01:13:18]Secret vs Infamous 2019国际邀请赛淘汰赛 败者组 BO3 第一场 8.23
2019/09/05 DOTA
python自定义类并使用的方法
2015/05/07 Python
插入排序_Python与PHP的实现版(推荐)
2017/05/11 Python
Python之Django自动实现html代码(下拉框,数据选择)
2020/03/13 Python
Python在后台自动解压各种压缩文件的实现方法
2020/11/10 Python
波兰运动鞋网上商店:e-Sporting
2018/02/16 全球购物
wedgwood加拿大官网:1759年成立的英国国宝级陶瓷餐具品牌
2018/07/17 全球购物
生产经理的自我评价分享
2013/11/07 职场文书
大学生演讲稿范文
2014/01/11 职场文书
《大禹治水》教学反思
2014/04/27 职场文书
中国文明网向国旗敬礼寄语大全
2014/09/27 职场文书
兴趣班停课通知
2015/04/24 职场文书
大学迎新生欢迎词
2015/09/29 职场文书
假期读书倡议书3篇
2019/08/19 职场文书
励志语录:时光飞逝,请学会珍惜所有的人和事
2020/01/16 职场文书