PHP实现文件上传

news2025/7/14 6:03:32
  • 上传文件的必备三个条件:

1、上传到后台的文件

2、method = "post";(不可以为get方法)

3、enctype = "multipart/form-data";(注意哦,是data,不是date)

三者缺一不可

后台PHP的$_FILES变量用于接收文件上传的信息

输出一个二维数组,一维数组的myFile就是HTML中的type为file的input标签的name属性值;

说明文件上传到uploads文件夹成功了


 

  • 服务端配置上传文件信息

http://php.int

a、可以修改临时文件保存的目录

b、post_max_size = 8M,(默认值为8M)POST方式发送数据的最大值;大于8M的发送不成功。注意:小于8M的也不一定成功,因为还受到upload_max_filesize的影响

c、超过post_max_size和upload_max_filesize都不成功

d、上传文件很大的配置:========关键字Resource==========

  • 错误信息说明

  • 客户端限制上传文件类型和文件大小

1、accept=""属性进行文件类型限制;

如:accept = "image/png,image/jpg,image/gif"类型要以逗号隔开;

注意======

客户端的限制,用户可以在控制台修改,所以一般建议在服务器上进行限制,这样才不影响正常的运行。

2、<input type="hidden" name="MAX_FILE_SIZE" value="values">进行文件大小的限制

如:<input type="hidden" name="MAX_FILE_SIZE" value="17760">

缺点:客户端做的限制对于会程序的人来说没有用。


 

  • 服务器端的限制

1、限制文件上传类型

1)、获取扩展名

通过截取点(.)后面的字符串,其中:

$fileInfo = $_FILES['myFile'];//myFile为type为file的input标签的name属性值;

a、$ext=strtolower(end(explode('.',$fileInfo['name'])));

分析:(1).strtolower(string) 函数把字符串转换为小写。返回转换为小写的字符串。'

(2).end(array) 函数将内部指针指向数组中的最后一个元素,并输出。如果成功则返回数组中最后一个元素的值,如果数组为空则返回 FALSE。

(3).explode(separator,string,limit) 函数使用一个字符串分割另一个字符串,并返回由字符串组成的数组。separator规定在哪里分割字符串。"separator" 参数不能是一个空字符串。string要分割的字符串。limit(可选)规定所返回的数组元素的数目。

b、$ext = pathinfo($fileInfo['name'],PATHINFO_EXTENSION);

分析:pathinfo(path,options) 函数以数组或字符串的形式返回关于文件路径的信息。

path:必需。规定要检查的路径。

options:可选。规定要返回的数组元素。默认是 all。

PATHINFO_DIRNAME - 只返回 dirname

PATHINFO_BASENAME - 只返回 basename

PATHINFO_EXTENSION - 只返回 extension

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/618711.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

抛弃传统网络?SDN协议、标准、接口对比分析!

概要&#xff1a; 随着网络规模的不断扩大和复杂性的增加&#xff0c;传统的网络架构已经难以满足日益增长的网络需求。SDN&#xff08;Software Defined Networking&#xff09;技术的出现&#xff0c;为网络的管理和控制带来了革命性的变化。SDN的核心思想是将网络的控制和管…

chatgpt赋能python:Python如何访问文件

Python如何访问文件 Python是一种优秀的编程语言&#xff0c;被广泛应用于各种领域&#xff0c;包括文件处理。在Python中&#xff0c;我们可以使用内置的文件处理功能访问文件。 什么是文件&#xff1f; 文件是计算机系统中的一种数据存储形式。它们可以包含任何类型的信息…

u盘视频丢失怎么找回?居然还得靠它

u盘视频丢失怎么找回&#xff1f;U盘作为一款常用的存储数据的工具&#xff0c;因为其自身的小巧便携&#xff0c;方便我们随身携带&#xff0c;深受广大用户的喜爱。在使用U盘的过程中&#xff0c;我们也会遇到一些文件丢失的麻烦&#xff0c;比如误删除里面的视频文件。当遇到…

浅谈 Tarjan 算法

在了解 Tarjan 算法之前&#xff0c;我们先来了解 dfs 搜索树。 1 dfs 生成树 定义&#xff1a; dfs 遍历整张图&#xff0c;按照 dfs 序构成一棵树。 1.1 有向图的 dfs 生成树 有向图的 dfs 生成树包括四种边&#xff1a; 树边&#xff08;tree edge&#xff09;&#xff…

CDC是什么?有没有合适的技术方案?

CDC 是 Change Data Capture(变更数据获取)的简称。核心思想是&#xff0c;监测并捕获数据库的 变动&#xff08;包括数据或数据表的插入、更新以及删除等&#xff09;&#xff0c;将这些变更按发生的顺序完整记录下 来&#xff0c;写入到消息中间件中以供其他服务进行订阅及…

阿里、百度、值得买齐发声,电商的“AIGC式”进化

配图来自Canva可画 一年一度618要来了&#xff0c;和往年一样折扣力度、明星直播等话题被炒得火热&#xff0c;不同的是今年618的科技属性更强。 究其原因&#xff0c;过去半年AIGC技术被电商平台应用到实际运营中&#xff0c;“AIGC选品”、“虚拟货场”、“智能客服”成为电商…

《MySQL(六):基础篇- 事务》

文章目录 6. 事务6.1 事务简介6.2 事务操作6.2.1 未控制事务6.2.2 控制事务一6.2.3 控制事务二 6.3 事务四大特性6.4 并发事务问题6.5 事务隔离级别 6. 事务 6.1 事务简介 事务 是一组操作的集合&#xff0c;它是一个不可分割的工作单位&#xff0c;事务会把所有的操作作为一…

【机器学习】神经网络入门

神经网络 非线性假设 如果对于下图使用Logistics回归算法&#xff0c;如果只有x1和x2两个特征的时候&#xff0c;Logistics回归还是可以较好地处理的。它可以将x1和x2包含到多项式中 但是有很多问题所具有的特征远不止两个&#xff0c;甚至是上万个&#xff0c;如果我们想要…

MySQL数据库给表添加索引

说明&#xff1a;当数据库中的记录数过多时&#xff0c;查询速度会显著变慢。此时可以给表创建索引&#xff0c;提高查询速度。 一、创建索引前 我现在有一张表&#xff0c;有1000万条记录&#xff0c;根据username值&#xff0c;查询一条记录&#xff0c;测试下查询时间&…

赛宁网安助力智能网联汽车发展 | “饶派杯”XCTF车联网安全挑战赛圆满收官

​​ 2023年5月31日&#xff0c;“饶派杯”XCTF车联网安全挑战赛在江西省上饶市圆满落幕。本次大赛特邀国内21支精英战队参与比拼&#xff0c;参赛选手覆盖全国知名高校、自动驾驶汽车和科研院所等车联网安全人才。最终&#xff0c;经过9个小时激烈角逐&#xff0c;来自南京邮电…

chatgpt赋能python:Python自动更新技术的应用

Python自动更新技术的应用 Python是一款高效的编程语言&#xff0c;广泛应用于各种软件开发、数据分析及人工智能等领域。随着大数据和人工智能的快速发展&#xff0c;Python语言的应用也日益普及&#xff0c;更多的企业和个人开始使用Python编写自己的程序。而随着程序的使用…

上榜“网络安全企业科技能力百强”啦!

最新公布的《2023网络安全企业科技能力报告》显示&#xff0c;顶象在“2023网络安全企业科技能力百强”和“2023网络安全企业有效专利数量百强”等两个榜单中均处于前列。 《2023网络安全企业科技能力报告》由中关村网络安全与信息化产业联盟发布&#xff0c;旨在探究网络安全…

微信开发者工具公众号网页项目实现本地项目调试

背景 最近业务场景中有需要微信H5进行实现,需要网页授权,需要用户进行点击授权的操作,跳转一个微信公众号后台设置的授权域名下的网页后才能获取到code,其他网页授权步骤这里不进行展开,不想频繁的打包上传的服务器看实现效果,所以考虑从微信开发者工具中实现本地调试,搜索过相…

如何开发原生的 JavaScript 插件(知识点+写法)

一、前言 通过 "WWW" 原则我们来了解 JavaScript 插件这个东西 第一个 W "What" -- 是什么?什么是插件,我就不照搬书本上的抽象概念了,我个人简单理解就是,能方便实现某个功能的扩展工具.(下面我会通过简单的例子来帮助读者理解) 第二个 W "Why&q…

(9)基于发射器的调优

文章目录 前言 1 概述 2 调优值 3 用任务规划器设置 前言 你可以在飞行中使用你的遥控发射器进行广泛的参数调优。这是为那些无法使用自动调优功能的高级用户准备的&#xff0c;或者希望通过对每个参数的完全手动调优控制来进行微调。 1 概述 基于发射机的调优允许你在飞行…

scala内建控制结构

一、条件表达式 &#xff08;一&#xff09;语法格式 - if (条件) 值1 else 值2&#xff08;二&#xff09;执行情况 条件为真&#xff0c;结果是值1&#xff1b;条件为假&#xff0c;结果是值2。如果if和else的返回结果同为某种类型&#xff0c;那么条件表达式结果也是那种类…

Vue.js 中的 props 和 $emit 方法有什么关系?

Vue.js 中的 props 和 $emit 方法有什么关系&#xff1f; 在 Vue.js 中&#xff0c;props 和 $emit 方法是两个常用的概念。它们可以帮助开发者更方便地实现组件之间的通信。但是这两个概念有什么关系呢&#xff1f;本文将会详细介绍 Vue.js 中的 props 和 $emit 方法&#xf…

【LeetCode每日一题】——1475.商品折扣后的最终价格

文章目录 一【题目类别】二【题目难度】三【题目编号】四【题目描述】五【题目示例】六【题目提示】七【解题思路】八【时间频度】九【代码实现】十【提交结果】 一【题目类别】 栈 二【题目难度】 简单 三【题目编号】 1475.商品折扣后的最终价格 四【题目描述】 给你一…

【区块链 | EVM】深入理解学习EVM - 深入了解 Solidity:堆栈

探讨 EVM 堆栈机器,以及如何在堆栈中推入和弹出数据 原文链接: https://betterprogramming.pub/solidity-tutorial-all-about-stack-c1ec6070fe60探讨 EVM 堆栈机器,以及如何在堆栈中推入和弹出数据 图片来源:Iva Rajović on Unsplash 这是"深入Solidity数据存储位置…

A股月份效应 | Python量化A股市场魔咒,5穷6绝7翻身准确吗?| 邢不行

A股有很多广为流传的谚语&#xff0c;它们大多源于投资者对交易经验的总结和共识。 比如我们之前验证过的散户反买别墅靠海、跳空必回补等谚语。 今天我们要验证的&#xff0c;是五穷六绝七翻身这句谚语。 它的意思是A股在5月、6月可能会跌的很惨&#xff0c;到7月会开始反弹回…