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 相关文章推荐
初学者入门:细述PHP4的核心Zend
Sep 05 PHP
初探PHP5
Oct 09 PHP
PHP5.2下chunk_split()函数整数溢出漏洞 分析
Jun 06 PHP
用phpmyadmin更改mysql5.0登录密码
Mar 25 PHP
PHP笔记之:基于面向对象设计的详解
May 14 PHP
微信公众号开发之微信公共平台消息回复类实例
Nov 14 PHP
php提交表单发送邮件的方法
Mar 20 PHP
使用Appcan客户端自动更新PHP版本号(全)
Jul 31 PHP
PHP随机数 C扩展随机数
May 04 PHP
php使用get_class_methods()函数获取分类的方法
Jul 20 PHP
ThinkPHP框架实现数据增删改
May 07 PHP
Jsonp劫持学习
Apr 01 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翻页类
2009/06/01 PHP
PHP中操作ini配置文件的方法
2013/04/25 PHP
php $_SERVER windows系统与linux系统下的区别说明
2014/02/14 PHP
PHP基本语法总结
2014/09/06 PHP
PHP生成网站桌面快捷方式代码分享
2014/10/11 PHP
PHP实现通过get方式识别用户发送邮件的方法
2015/07/16 PHP
PHP 输出缓冲控制(Output Control)详解
2016/08/25 PHP
PHP面向对象多态性实现方法简单示例
2017/09/27 PHP
12款经典的白富美型—jquery图片轮播插件—前端开发必备
2013/01/08 Javascript
Javascript setInterval的两种调用方法(实例讲解)
2013/11/29 Javascript
JS冒泡事件的快速解决方法
2013/12/16 Javascript
JQuery为页面Dom元素绑定事件及解除绑定方法
2014/04/23 Javascript
jquery.cookie.js用法实例详解
2015/12/25 Javascript
jQuery 3.0 的 setter和getter 模式详解
2016/07/11 Javascript
jQuery实现文章图片弹出放大效果
2017/04/06 jQuery
加载 vue 远程代码的组件实例详解
2017/11/20 Javascript
简述vue状态管理模式之vuex
2018/08/29 Javascript
[45:34]完美世界DOTA2联赛PWL S3 Rebirth vs CPG 第一场 12.18
2020/12/19 DOTA
Python实战之制作天气查询软件
2019/05/14 Python
使用 PyTorch 实现 MLP 并在 MNIST 数据集上验证方式
2020/01/08 Python
使用keras实现densenet和Xception的模型融合
2020/05/23 Python
opencv 图像腐蚀和图像膨胀的实现
2020/07/07 Python
python gui开发——制作抖音无水印视频下载工具(附源码)
2021/02/07 Python
Lookfantastic美国/加拿大:英国知名美妆购物网站
2019/03/27 全球购物
No7 Beauty美国官网:英国国民护肤品牌
2019/10/31 全球购物
阿迪达斯新加坡官方网站:adidas新加坡
2019/12/06 全球购物
奢华时尚的创新平台:Baltini
2020/10/03 全球购物
经理职责范文
2013/11/08 职场文书
体育专业个人求职信范文
2013/12/27 职场文书
乌鸦喝水教学反思
2014/02/07 职场文书
消防应急演练方案
2014/02/12 职场文书
建筑学专业自荐书
2014/07/09 职场文书
2014年财政工作总结
2014/12/10 职场文书
培训通知书模板
2015/04/17 职场文书
超搞笑婚前保证书
2015/05/08 职场文书
2015年公司后勤管理工作总结
2015/05/13 职场文书