热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

开发笔记:yii2文件上传

篇首语:本文由编程笔记#小编为大家整理,主要介绍了yii2文件上传相关的知识,希望对你有一定的参考价值。//模型<

篇首语:本文由编程笔记#小编为大家整理,主要介绍了yii2文件上传相关的知识,希望对你有一定的参考价值。



//模型
php
namespace backendmodels;
use Yii;
use yiiwebUploadedFile;
class UploalModel extends yiidbActiveRecord
{
/**
* @var UploadedFile|Null file attribute
*/
public $file;
/**
* @return array the validation rules.
*/
public function rules()
{
return [
[[
"file"], "file",],
];
}
/**公共上传 上传信息(数组) 文件名称 大小 后缀名限制 上传后保存的名字 update时为更新图片 删除原有图片*/
public function upload($img,$name = ‘/vessel‘,$siez = ‘‘,$arr_type = ‘‘,$text_name = ‘‘,$act=‘update‘,$url=‘/vessel/20180831/153571385083726.jpg‘)
{
$path = ‘../..‘;
$dirname = $path.$name;
$fill=$this->file->extension;//图片的名字只取后缀名
if(empty($text_name)){
$ran=time().rand(10000,99999);//随机名字
}else{$ran = $text_name;}
$arr = $arr_type;
if(!empty($arr)){
if(!in_array($fill,$arr)){ return json_encode(‘格式不正确‘);}
}
//定义上传大小和类型
if(!empty($siez)){
if($img[‘size‘]>$siez) {return json_encode(‘文件大小超过限制‘);}
}
//文件上传存放的目录
$dir=$dirname.‘/‘.date("Ymd");
$dir_sev=$name.‘/‘.date("Ymd");/*数据库存储路径*/
if(!file_exists($dir)) {
mkdir($dir,0777,true);
}
if ($this->validate()) {
//文件名
$fileName = $ran .‘.‘.$fill;
$dir = $dir."/". $fileName;
if($act == ‘update‘){if($this->file->saveAs($dir)){@unlink($path.$url);}}/*删除图片*/
$uploadSuccessPath = $dir_sev."/". $fileName;/*最后路径*/
return $uploadSuccessPath;
}
}
}


//控制器
php
namespace backendcontrollers;
use Yii;
use backendmodelsUploalModel;
use yiiwebUploadedFile;
class TestController extends yiiwebController
{
/**
* 文件上传
* 我们这里上传成功后把图片的地址进行返回
*/
public function actionIndex ()
{
$model = new UploalModel();
$uploadSuccessPath = "";
if (Yii::$app->request->isPost) {
$model->file = UploadedFile::getInstance($model, "file");
$file = $model->upload((array)$model->file);
return $file;
}
return $this->render("index", [
"model" => $model,
"uploadSuccessPath" => $uploadSuccessPath,
]);
}
}


//视图
php
use yiiwidgetsActiveForm;
$form = ActiveForm::begin(["options" => ["enctype" => "multipart/form-data"]]);
?>



end(); ?>

 





推荐阅读
  • 在JavaWeb开发中,文件上传是一个常见的需求。无论是通过表单还是其他方式上传文件,都必须使用POST请求。前端部分通常采用HTML表单来实现文件选择和提交功能。后端则利用Apache Commons FileUpload库来处理上传的文件,该库提供了强大的文件解析和存储能力,能够高效地处理各种文件类型。此外,为了提高系统的安全性和稳定性,还需要对上传文件的大小、格式等进行严格的校验和限制。 ... [详细]
  • 本文介绍了如何使用 Node.js 和 Express(4.x 及以上版本)构建高效的文件上传功能。通过引入 `multer` 中间件,可以轻松实现文件上传。首先,需要通过 `npm install multer` 安装该中间件。接着,在 Express 应用中配置 `multer`,以处理多部分表单数据。本文详细讲解了 `multer` 的基本用法和高级配置,帮助开发者快速搭建稳定可靠的文件上传服务。 ... [详细]
  • 技术分享:使用 Flask、AngularJS 和 Jinja2 构建高效前后端交互系统
    技术分享:使用 Flask、AngularJS 和 Jinja2 构建高效前后端交互系统 ... [详细]
  • Spring Boot 中配置全局文件上传路径并实现文件上传功能
    本文介绍如何在 Spring Boot 项目中配置全局文件上传路径,并通过读取配置项实现文件上传功能。通过这种方式,可以更好地管理和维护文件路径。 ... [详细]
  • 本文介绍如何在 Android 中自定义加载对话框 CustomProgressDialog,包括自定义 View 类和 XML 布局文件的详细步骤。 ... [详细]
  • 本文详细介绍了 PHP 中对象的生命周期、内存管理和魔术方法的使用,包括对象的自动销毁、析构函数的作用以及各种魔术方法的具体应用场景。 ... [详细]
  • 开发日志:高效图片压缩与上传技术解析 ... [详细]
  • 在PHP中如何正确调用JavaScript变量及定义PHP变量的方法详解 ... [详细]
  • 系统转换的三种方法及其具体应用分析
    系统转换是信息技术领域中常见的任务,本文详细探讨了三种主要的系统转换方法及其具体应用场景。这些方法包括:代码迁移、数据迁移和平台迁移。文章通过实例分析了每种方法的优势和局限性,并提供了实际操作中的注意事项和技术要点。例如,代码迁移适用于从VB6获取网页源码,数据迁移在Ubuntu中用于隐藏侧边栏,而平台迁移则涉及Tomcat 6.0的使用和谷歌爬虫的测试。此外,文章还讨论了蓝翰互动PHP面试和5118 SEO工具在系统转换中的应用,为读者提供了全面的技术参考。 ... [详细]
  • 单元测试:使用mocha和should.js搭建nodejs的单元测试
    2019独角兽企业重金招聘Python工程师标准BDD测试利器:mochashould.js众所周知对于任何一个项目来说,做好单元测试都是必不可少 ... [详细]
  • 2018年在北航听陈博士讲解时,对重入漏洞有了初步了解。最近重温了慢雾科技的相关文章,发现他们对重入漏洞的解释非常清晰明了。 ... [详细]
  • 2.2 组件间父子通信机制详解
    2.2 组件间父子通信机制详解 ... [详细]
  • 类加载机制是Java虚拟机运行时的重要组成部分。本文深入解析了类加载过程的第二阶段,详细阐述了从类被加载到虚拟机内存开始,直至其从内存中卸载的整个生命周期。这一过程中,类经历了加载(Loading)、验证(Verification)等多个关键步骤。通过具体的实例和代码示例,本文探讨了每个阶段的具体操作和潜在问题,帮助读者全面理解类加载机制的内部运作。 ... [详细]
  • 基于Net Core 3.0与Web API的前后端分离开发:Vue.js在前端的应用
    本文介绍了如何使用Net Core 3.0和Web API进行前后端分离开发,并重点探讨了Vue.js在前端的应用。后端采用MySQL数据库和EF Core框架进行数据操作,开发环境为Windows 10和Visual Studio 2019,MySQL服务器版本为8.0.16。文章详细描述了API项目的创建过程、启动步骤以及必要的插件安装,为开发者提供了一套完整的开发指南。 ... [详细]
  • 如何在PHP中准确获取服务器IP地址?
    如何在PHP中准确获取服务器IP地址? ... [详细]
author-avatar
DREAM2502930781
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有