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 相关文章推荐
写一个用户在线显示的程序
Oct 09 PHP
用php实现批量查询清除一句话后门的代码
Jan 20 PHP
php中强制下载文件的代码(解决了IE下中文文件名乱码问题)
May 09 PHP
解决file_get_contents无法请求https连接的方法
Dec 17 PHP
开源php中文分词系统SCWS安装和使用实例
Apr 11 PHP
PHP中spl_autoload_register()和__autoload()区别分析
May 10 PHP
php数组使用规则分析
Feb 27 PHP
php检索或者复制远程文件的方法
Mar 13 PHP
解读PHP的Yii框架中请求与响应的处理流程
Mar 17 PHP
适合PHP初学者阅读的4本经典书籍
Sep 23 PHP
Yii2中简单的场景使用介绍
Jun 02 PHP
PHP的mysqli_stat()函数讲解
Jan 23 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设计模式之装饰者模式
2012/02/29 PHP
php中使用preg_replace函数匹配图片并加上链接的方法
2013/02/06 PHP
php笔记之:数据类型与常量的使用分析
2013/05/14 PHP
PHP与MongoDB简介|安全|M+PHP应用实例详解
2013/06/17 PHP
PHP经典面试题集锦
2015/03/19 PHP
PHP Reflection API详解
2015/05/12 PHP
PHP常见的6个错误提示及解决方法
2016/07/07 PHP
使用Codeigniter重写insert的方法(推荐)
2017/03/23 PHP
PHP实现使用DOM将XML数据存入数组的方法示例
2017/09/27 PHP
服务器端的JavaScript脚本 Node.js 使用入门
2012/03/07 Javascript
禁用页面部分JavaScript方法的具体实现
2013/07/31 Javascript
jquery退出each循环的写法
2014/02/26 Javascript
JS实现简单短信验证码界面
2017/08/07 Javascript
angular实现input输入监听的示例
2018/08/31 Javascript
在Vue 中使用Typescript的示例代码
2018/09/10 Javascript
layer弹窗在键盘按回车将反复刷新的实现方法
2019/09/25 Javascript
[01:32:22]DOTA2-DPC中国联赛 正赛 Ehome vs VG BO3 第一场 2月5日
2021/03/11 DOTA
Python中的枚举类型示例介绍
2019/01/09 Python
python实现Excel文件转换为TXT文件
2019/04/28 Python
Python PyCharm如何进行断点调试
2019/07/05 Python
python hough变换检测直线的实现方法
2019/07/12 Python
Python for循环搭配else常见问题解决
2020/02/11 Python
Python利用imshow制作自定义渐变填充柱状图(colorbar)
2020/12/10 Python
用css3制作纸张效果(外翻卷角)
2013/02/01 HTML / CSS
Peter Alexander新西兰站:澳大利亚领先的睡衣设计师品牌
2016/12/10 全球购物
Lookfantastic挪威官网:英国知名美妆购物网站
2017/07/26 全球购物
亚马逊巴西站:Amazon.com.br
2019/09/22 全球购物
Jar包的作用是什么
2014/03/30 面试题
给排水工程师岗位职责
2013/11/21 职场文书
教师应聘个人求职信
2013/12/10 职场文书
三下乡个人总结
2015/03/04 职场文书
公司费用报销管理制度
2015/08/04 职场文书
2016年党员创先争优承诺书
2016/03/25 职场文书
2016年感恩母亲节活动总结
2016/04/01 职场文书
Golang日志包的使用
2022/04/20 Golang
Redis高并发缓存架构性能优化
2022/05/15 Redis