iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > PHP编程 >ThinkPHP6 文件上传
  • 661
分享到

ThinkPHP6 文件上传

phpthinkPHP文件上传 2023-09-14 12:09:53 661人浏览 独家记忆
摘要

内置文件上传使用\think\facade\Filesystem类封装方法 目录 简单上传 public存储文件  文件验证 命名规则 使用sha1 使用MD5 使用date 指定文件名称 自定义命名规则 更多上传设置 总结  

内置文件上传使用\think\facade\Filesystem类封装方法

目录

简单上传

public存储文件 

文件验证

命名规则

使用sha1

使用MD5

使用date

指定文件名称

自定义命名规则

更多上传设置

总结


 

简单上传

直接上传,使用默认上传设置

$savename = \think\facade\Filesystem::putFile('topic', $file);print_r($savename);die;

返回结果:

topic/20230130\e5c255ec6a6c1b99ff735cf308a8a54b.jpg

发现在app/runtime目录下新增目录结构及文件

生成以当前日期为子目录,以微秒时间的md5编码为文件名的文件

public存储文件 

修改文件存储在public下

$savename = \think\facade\Filesystem::disk('public')            ->putFile('topic', $file);print_r($savename);die;

返回结果:

topic/20230130\7b80e19a10e8fdef36166e35e19b017c.jpg

可见项目入口文件同级目录public下新增目录结构及文件

同样生成以当前日期为子目录,以微秒时间的md5编码为文件名的文件

文件验证

验证可参考表单验证使用,与文件验证有关的规则为:

验证参数

说明

fileSize

上传文件的最大字节

fileExt

文件后缀,多个用逗号分割或者数组

fileMime

文件MIME类型,多个用逗号分割或者数组

image

验证图像文件的尺寸和类型

命名规则

Tp封装了三种命名规则,默认使用date

规则

描述

date

根据日期和微秒数生成

md5

对文件使用md5_file散列生成

sha1

对文件使用sha1_file散列生成

使用sha1

$savename = \think\facade\Filesystem::disk('public')            ->putFile('topic', $file, 'sha1');print_r($savename);die;

返回结果:

topic/d3\e1681ca30eca89f9a46b40c6433f4c52eda77a.jpg

使用MD5

$savename = \think\facade\Filesystem::disk('public')            ->putFile('topic', $file, 'md5');print_r($savename);die;

返回结果 :

topic/83\d6e7302d835dae41ea4a22f2014e6b.jpg

使用date

因为默认使用date命名规则,所以不需要设置第三个参数;如果设置就会报错,提示需要为date函数设置一个必须参数。

指定文件名称

$savename = \think\facade\Filesystem::disk('public')->putFileAs('topic', $file,'new.jpg');print_r($savename);die;

返回结果

topic/new.jpg

自定义命名规则

如果不想用tp中封装的这些命名规则,可以自己写一个函数来处理并返回文件名称

调用方式如下:

$savename = \think\facade\Filesystem::disk('public')            ->putFile('topic', $file, '自定义函数名称');print_r($savename);die;

注意:函数名称不带括号,并且没有参数设置。

更多上传设置

如果需要修改更多关于上传设置,可修改app/config/filesystem.PHP

多应用则修改相应应用下config/filesystem.php

 env('filesystem.driver', 'local'),    // 磁盘列表    'disks'   => [        'local'  => [            'type' => 'local',            'root' => app()->getRuntimePath() . 'storage',        ],        'public' => [            // 磁盘类型            'type'       => 'local',            // 磁盘路径            'root'       => app()->getRootPath() . 'public/storage',            // 磁盘路径对应的外部URL路径            'url'        => '/storage',            // 可见性            'visibility' => 'public',        ],        // 更多的磁盘配置信息    ],];

 比如修改storage为uploads

 env('filesystem.driver', 'local'),    // 磁盘列表    'disks'   => [        'local'  => [            'type' => 'local',            'root' => app()->getRuntimePath() . 'uploads',        ],        'public' => [            // 磁盘类型            'type'       => 'local',            // 磁盘路径            'root'       => app()->getRootPath() . 'public/uploads',            // 磁盘路径对应的外部URL路径            'url'        => '/uploads',            // 可见性            'visibility' => 'public',        ],        // 更多的磁盘配置信息    ],];

上传后增加uploads文件夹

在项目中使用,可以在返回路径前设置公共父级路径进行拼接使用。

总结

上传比较简单,照着官方文档一路很顺畅的上传,只有在date那里设置的时候遇到点问题。

来源地址:https://blog.csdn.net/json_ligege/article/details/128827509

--结束END--

本文标题: ThinkPHP6 文件上传

本文链接: https://www.lsjlt.com/news/407263.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • ThinkPHP6 文件上传
    内置文件上传使用\think\facade\Filesystem类封装方法 目录 简单上传 public存储文件  文件验证 命名规则 使用sha1 使用MD5 使用date 指定文件名称 自定义命名规则 更多上传设置 总结   ...
    99+
    2023-09-14
    php thinkPHP 文件上传
  • SpringMVC 单文件上传与多文件上传实例
    一、简述一个javaWeb项目中,文件上传功能几乎是必不可少的,本人在项目开发中也时常会遇到,以前也没怎么去理它,今天有空学习了一下这方面的知识,于是便将本人学到的SpringMVC中单文件与多文件上传这部分知识做下笔记。二、单文件上传1、...
    99+
    2023-05-31
    springmvc 文件上传 多文件上传
  • PHP---文件上传
    目录 一、文件上传的概念 二、文件上传的步骤 (1)表单的制作 三、$_FILES详解 (1)name (2)tmp_name (3)type (4)error (5)size  四、移动临时文件到目标位置  五、多文件上传 (1)同名表单...
    99+
    2023-09-03
    服务器 运维 php
  • Spring boot实现文件上传实例(多文件上传)
    文件上传主要分以下几个步骤:(1)新建maven java project;(2)在pom.xml加入相应依赖;(3)新建一个表单页面(这里使用thymleaf);(4)编写controller;(5)测试;(6)对上传的文件做一些限制;(...
    99+
    2023-05-31
    spring boot 文件上传
  • ThinkPHP6上传图片代码demo是什么
    这篇文章主要讲解了“ThinkPHP6上传图片代码demo是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“ThinkPHP6上传图片代码demo是什么”吧!本文展示了ThinkPHP6 ...
    99+
    2023-06-03
  • ThinkPHP6 上传报错 Class ‘think\\facade\\Filesystem‘ not found
    thinkphp在6.0使用composer安装,在vendor 中会缺少一个库 这个库就是 think-filesystem 此时你按照官方文档中提供的方法 上传会出现报错 报错如下: 这时候...
    99+
    2023-09-01
    php composer
  • Cherrypy文件上传非ASCII文件
    Cherrypy 版本: 18.0.1 由于某些特殊原因(可能是与标准兼容的问题),Cherrypy对上传文件的原文件名使用 ISO-8859-1 编码方式解码,导致非 ASCII 的文件名显示为乱码。 解决的方式也很简单,只需要对文件名...
    99+
    2023-01-30
    文件上传 文件 Cherrypy
  • 用Python上传文件
    Python正在吞噬这个世界!您会发现许多热情的Python程序员和同样多的批评者,但不可否认的是,Python在当今软件开发中是一个强大的、相关的、不断增长的力量。 Python只是一种语言,语言不能解决业务问题,如工作流、体系结构和物流...
    99+
    2023-01-31
    上传文件 Python
  • python ftp 上传文件
    python  ftp 上传文件 #!/usr/bin/env python #-*- coding: utf-8 -*- from ftplib import FTP       #调用 模块 i...
    99+
    2023-01-31
    上传文件 python ftp
  • 文件上传漏洞
    目录 前言 1.原理 2.类型 3.复现 3.1环境 3.1.1函数介绍 3.2过程 3.2.1客户端绕过 3.2.2服务端绕过         黑名单检查后缀         白名单检查后缀 前言 文件上传漏洞是wb安全中经常用到的一...
    99+
    2023-09-03
    安全 网络 web安全 php
  • 文件上传攻击
    一、原理         文件上传攻击实质上就是拿下网站的控制权,户文件上传部分的控制不足或者处理缺陷,而导致的用户可以越过其本身权限向 服务器 上上传可执行的动态脚本文件。在我们的日常生活中经常会遇到,例如,我们在上传文件时,后台服务...
    99+
    2023-08-31
    安全
  • bugku-web-文件上传
    题目没有太多的描述   简单明了 (它不想要PHP文件) 上传一个其他类型试试看  被拦截了 回想之前我们做过的题目  不可以上传 php文件 说明一共存在三个过滤 请求头部的 Content-Type文件后缀请求数据的Content-...
    99+
    2023-09-13
    php 开发语言 安全 burp 网络
  • CTFHub-Web-文件上传
    目录 知识点 一、无验证 二、前端验证 三、.htaccess 1、题目简介 2、解题思路 3、解题:上传htaccess文件==》上传符合我们重新后规则的文件==》蚁剑连接 四、MIME绕过 1、知识点 2、解题思路  五、文件头检查 六...
    99+
    2023-09-05
    php 安全 开发语言 前端 web安全
  • SpringMVC的文件上传
    6.SpringMVC的文件上传 6.1-SpringMVC的请求-文件上传-客户端表单实现(应用) 文件上传客户端表单需要满足: 表单项type=“file” 表单的提交方式是post 表单的...
    99+
    2023-08-31
    java 前端 servlet
  • PHP cURL 文件上传
    本篇文章将指导如何使用 cURL 和 CURLFile 类将图像文件发送到服务器。 这个想法是将图像文件从一个页面发布到另一个页面上的另一个页面。 Index.php:首先,我们将文件 i...
    99+
    2024-02-27
  • Asp.Net上传文件并配置可上传大文件的方法
    ASP.NET 包含两个控件可以使用户向网页服务器上传文件。一旦服务器接受了上传的文件数据,那么应用程序就可以进行保存,进行检查或者忽略它。 HtmlInputFile -...
    99+
    2024-04-02
  • django+python大文件上传
    大文件上传服务一、前端[webuploader](http://fex.baidu.com/webuploader/ ''webuploader'')二、后端django 2.0.0这里只贴出核心的代码:前端的: <!DOCTYPE ...
    99+
    2023-01-31
    大文件 上传 django
  • php如何上传文件
    这篇文章主要介绍php如何上传文件,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!php有什么特点1、执行速度快。2、具有很好的开放性和可扩展性。3、PHP支持多种主流与非主流的数据库。4、面向对象编程:PHP提供了类...
    99+
    2023-06-14
  • 文件上传 .htaccess 与.user.ini
    1、.htaccess 1使用方法,上传.htaccess文件内容如下 SetHandler application/x-httpd-php​匹配文件名为“shell”的文件,该文件作为可执行程序解析 或者 AddType applicat...
    99+
    2023-09-01
    php 服务器 开发语言
  • 文件上传漏洞 (Part1)
    使用的平台是BWAPP 正常的安装完 bwapp ,在文件上传模块能够成功上传文件,但文件却不可以被保存,原因是images文件夹的权限不够,解决方法: docker exec -it 你的do...
    99+
    2023-09-10
    安全 php web安全
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作