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 相关文章推荐
使用sockets:从新闻组中获取文章(二)
Oct 09 PHP
php gd2 上传图片/文字水印/图片水印/等比例缩略图/实现代码
May 15 PHP
PHP中的cookie不用刷新就生效的方法
Feb 04 PHP
PHP实现下载功能的代码
Sep 29 PHP
ThinkPHP中的关联模型注意点
Jun 16 PHP
用 Composer构建自己的 PHP 框架之基础准备
Oct 30 PHP
php查询相似度最高的字符串的方法
Mar 12 PHP
PHP连接MYSQL数据库实例代码
Jan 20 PHP
是 WordPress 让 PHP 更流行了 而不是框架
Feb 03 PHP
php微信开发之自定义菜单实现
Nov 18 PHP
PHP策略模式定义与用法示例
Jul 27 PHP
PHP编程中的Session阻塞问题与解决方法分析
Aug 07 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/04/09 PHP
php处理单文件、多文件上传代码分享
2016/08/24 PHP
PHP中模糊查询并关联三个select框
2017/06/19 PHP
PHP的PDO预定义常量讲解
2019/01/24 PHP
Laravel中GraphQL接口请求频率实战记录
2020/09/01 PHP
textContent在Firefox下与innerText等效的属性
2007/05/12 Javascript
JS网页播放声音实现代码兼容各种浏览器
2013/09/22 Javascript
Bootstrap~多级导航(级联导航)的实现效果【附代码】
2016/03/08 Javascript
原生js仿jquery animate动画效果
2016/07/13 Javascript
微信小程序 后台https域名绑定和免费的https证书申请详解
2016/11/10 Javascript
搭建简单的nodejs http服务器详解
2017/03/09 NodeJs
Vue中的v-cloak使用解读
2017/03/27 Javascript
MUI 解决动态列表页图片懒加载再次加载不成功的bug问题
2017/04/13 Javascript
微信小程序 动态传参实例详解
2017/04/27 Javascript
VUE中v-model和v-for指令详解
2017/06/23 Javascript
JSON创建键值对(key是中文或者数字)方式详解
2017/08/24 Javascript
浅谈JavaScript作用域和闭包
2017/09/18 Javascript
微信小程序 页面跳转事件绑定的实例详解
2017/09/20 Javascript
vue-router+vuex addRoutes实现路由动态加载及菜单动态加载
2017/09/28 Javascript
pygame播放音乐的方法
2015/05/19 Python
python3.6 实现AES加密的示例(pyCryptodome)
2018/01/10 Python
python训练数据时打乱训练数据与标签的两种方法小结
2018/11/08 Python
Python文件操作方法详解
2020/02/09 Python
Python阶乘求和的代码详解
2020/02/14 Python
jupyter notebook远程访问不了的问题解决方法
2021/01/11 Python
为有想象力的人提供的生活方式商店:Firebox
2018/06/04 全球购物
应届大学生求职信
2013/12/01 职场文书
党员培训思想汇报
2014/01/07 职场文书
小学红领巾中秋节广播稿
2014/01/13 职场文书
劳资协议书范本
2014/04/23 职场文书
研究生求职自荐书
2014/06/23 职场文书
2014年置业顾问工作总结
2014/11/17 职场文书
接待员岗位职责范本
2015/04/15 职场文书
CSS3实现的文字弹出特效
2021/04/16 HTML / CSS
详解Vue的列表渲染
2021/11/20 Vue.js
Pandas 数据编码的十种方法
2022/04/20 Python