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 相关文章推荐
模拟xcopy的函数
Oct 09 PHP
php面向对象全攻略 (六)__set() __get() __isset() __unset()的用法
Sep 30 PHP
javascript 小型动画组件与实现代码
Jun 02 PHP
初品cakephp 入门基础
Feb 16 PHP
解析file_get_contents模仿浏览器头(user_agent)获取数据
Jun 27 PHP
thinkphp中空模板与空模块的用法实例
Nov 26 PHP
PHP实现无限级分类(不使用递归)
Oct 22 PHP
在WordPress的文章编辑器中设置默认内容的方法
Dec 29 PHP
php通过执行CutyCapt命令实现网页截图的方法
Sep 30 PHP
curl 出现错误的调试方法(必看)
Feb 13 PHP
PHP实现登录验证码校验功能
May 17 PHP
php fread函数使用方法总结
May 28 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 删除目录下N分钟前创建的所有文件的实现代码
2013/08/10 PHP
php用户注册时常用的检验函数实例总结
2014/12/22 PHP
Laravel5.5 数据库迁移:创建表与修改表示例
2019/10/23 PHP
PHP autoload使用方法及步骤详解
2020/09/05 PHP
js停止输出代码
2008/07/20 Javascript
js 实现图片预加载(js操作 Image对象属性complete ,事件onload 异步加载图片)
2011/03/25 Javascript
基于Jquery实现的一个图片滚动切换
2012/06/21 Javascript
jQuery getJSON()+.ashx 实现分页(改进版)
2013/03/28 Javascript
基于JavaScript实现继承机制之原型链(prototype chaining)的详解
2013/05/07 Javascript
js jquery获取随机生成id的服务器控件的三种方法
2013/07/11 Javascript
JavaScript字符串插入、删除、替换函数使用示例
2013/07/25 Javascript
每天一篇javascript学习小结(Date对象)
2015/11/13 Javascript
浅析jQuery 3.0中的Data
2016/06/14 Javascript
微信小程序显示下拉列表功能【附源码下载】
2017/12/12 Javascript
vuex管理状态 刷新页面保持不被清空的解决方案
2019/11/11 Javascript
js回调函数仿360开机
2019/12/26 Javascript
微信小程序点击按钮动态切换input的disabled禁用/启用状态功能
2020/03/07 Javascript
JavaScript Window浏览器对象模型原理解析
2020/05/30 Javascript
解决antd datepicker 获取时间默认少8个小时的问题
2020/10/29 Javascript
用python读写excel的方法
2014/11/18 Python
跟老齐学Python之使用Python查询更新数据库
2014/11/25 Python
Python正则表达式如何进行字符串替换实例
2016/12/28 Python
python 第三方库的安装及pip的使用详解
2017/05/11 Python
Python3 实现随机生成一组不重复数并按行写入文件
2018/04/09 Python
对python 合并 累加两个dict的实例详解
2019/01/21 Python
用pycharm开发django项目示例代码
2019/06/13 Python
pycharm访问mysql数据库的方法步骤
2019/06/18 Python
python解析xml文件方式(解析、更新、写入)
2020/03/05 Python
django处理select下拉表单实例(从model到前端到post到form)
2020/03/13 Python
windows10环境下用anaconda和VScode配置的图文教程
2020/03/30 Python
iPython pylab模式启动方式
2020/04/24 Python
CSS3用@font-face实现自定义英文字体
2013/09/23 HTML / CSS
教师学习党的群众路线教育实践活动心得体会
2014/10/31 职场文书
护士医德医风心得体会
2016/01/25 职场文书
个人职业生涯规划之自我评估篇
2019/09/03 职场文书
Java使用jmeter进行压力测试
2021/07/09 Java/Android