php 文件上传

目录

1 php.ini 配置文件的修改

2.系统返回码详解

错误级别

4.上传简单示例 

5.php代码简单优化


1 php.ini 配置文件的修改

配置项说明
file_uploads
on 为 开启文件上传功能, off 为关闭
post_max_size
系统允许的 POST 传参的最大值 ,默认 8M
upload_max_filesize
系统允许的上传文件的最大值 ,默认 2M
menory_limit
内存使用限制 ,默认 256M

 可以根据自己的需求进行修改

2.系统返回码详解

错误码说明
0无误,可以继续进行文件上传的后续操作
1超出上传文件的最大限制,
upload_max_filesize = 100M php.ini 中设置,一般默认为
100M 。可根据项目中的实际需要来修改
2超出了指定文件大小,根据项目目的业务需求指定上传文件的大小限制
3只有部分的文件被上传
4文件没有被上传
6找不到临时文件夹,可能目录不存在或没权限
7文件写入失败,可能磁盘满了或没有权限

错误级别

错误类型说明
E_ERROE
警告,问题比较严重。但是还会继续向下运行
E_NOTICE
提示,有些小问题不会影响到程序。常发生在项目未定义
E_PARSE
编译时语法解析错误。解析错误仅仅由分析器产生。
E_ALL
所有的错误
E_STRICT
启用 PHP 对代码的修改建议,以确保代码具有最佳的互操作性和向前兼容性。
E_DEPRECATED
启用后将会对在未来版本中可能无法正常工作的代码给出警告。
error   最严重,必须要解决。不然程序无法继续向下执行
warning  也很重要。但也必须要解决。如果明确的、故意的可以不用处理。
notice 可以不用管。但是在高标准要求的项目中也必须要解决。因为notice会影响到PHP的
            执行效率。通常发生在函数未定义等。
parse  错误,是指语法错写错了,必须要解决,代表全部类型的所有错误。

4.上传简单示例 

前端代码

<!DOCTYPE html>
<html><head></head><meta charset="UTF-8"><title>文件上传</title><body><div><div>欢迎来到上传文件系统</div><form action='upload.php' method='post' enctype='multipart/form-data'>请选择文件:<input type='file' name='image'>点击上传:<input type='submit'></form></div></body>
</html>

php代码

<?php
header("Content-Type: text/html; charset=utf-8");$a = dirname(__FILE__);//获取当前文件所在目录$f = $_FILES['image'];//获取上传文件信息,数组型//var_dump($f);$t = time(); //获取时间戳//因为上传的文件会作为临时文件,路径在tmp_name,//所以需要进行移动到我们需要上传到的文件夹下move_uploaded_file($f['tmp_name'], $a.'\\uploads\\'.$t.$f['name']);//移动后,以时间戳重命名
?>

5.php代码简单优化

解决上传文件名为中文乱码情况。 对上传类型进行限制

<?php
header("Content-Type: text/html; charset=utf-8");$a = dirname(__FILE__);$f = $_FILES['image'];//获取上传文件信息,数组型var_dump($f);//对上传文件大小进行限制,单位字节if($f['size'] > 500000){echo "文件太大,请重新选择".'<br>';exit;}//对上传文件类型进行限制,如一些常用图片格式$types = array('image/jpeg','image/png','image/gif');if(!in_array($f['type'], $types)) {echo "只支持上传jpeg/png/gif格式的文件".'<br>';exit;}//查看上传返回码,0代表成功$error_code = $f['error'];if($error_code != 0) {echo "上传失败".'<br>';exit;}$t = time(); //获取时间戳$name = $f['name'];//获取上传的文件名$new_name = iconv('utf-8','gbk',$name);//对文件名进行编码//判断文件是否已上传,把时间戳去掉if(file_exists($a.'\\uploads\\'.$new_name)){echo '文件已存在';exit;}//因为上传的文件会作为临时文件,路径在tmp_name,//所以需要进行移动到我们需要上传到的文件夹下move_uploaded_file($f['tmp_name'], $a.'\\uploads\\'.$t.$new_name);//移动后,以时间戳重命名echo "上传成功".'<br>';
?>

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

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

相关文章

【JSON2WEB】03 go的模板包html/template的使用

Go text/template 是 Go 语言标准库中的一个模板引擎&#xff0c;用于生成文本输出。它使用类似于 HTML 的模板语言&#xff0c;可以将数据和模板结合起来&#xff0c;生成最终的文本输出。 Go html/template包实现了数据驱动的模板&#xff0c;用于生成可防止代码注入的安全的…

电信宽带配置动态域名和端口映射

需求: 家宽映射动态域名访问内网服务 动态域名:18081>电信光猫:18081>Openwrt软路由:18081>主机192.168.3.172:8081 目前网络结构&#xff1a; 电信光猫192.168.1.1 Openwrt软路由192.168.3.1 主机192.168.3.172上8081端口起了一个nginx-docker服务 前置条件&#x…

【JavaWeb】MVC架构模式

文章目录 MVC是什么&#xff1f;一、M &#xff1a;Model 模型层二、V&#xff1a;View 视图层三、C&#xff1a;Controller 控制层四、非前后端分离MVC五、前后端分离MVC总结 MVC是什么&#xff1f; MVC&#xff08;Model View Controller&#xff09;是软件工程中的一种**软件…

网页首页案例(使用框架:继上一篇博客结尾)

文章目录 新认识的快捷键1.先写好组件并导入App.vue2.往组件中一个一个填内容3.整体静态完成后&#xff0c;发现某些小部分相同&#xff0c;其实可以分装成小组件4.最后通过js动态渲染 新认识的快捷键 1.Ctrl滚轮按住往下拖可以部分选中 .用同样的方法选中下面的111&#xff0…

Spring Security 之 基本认证

基本认证 这部分提供了关于Spring Security如何为基于Servlet的应用程序提供基本HTTP认证支持的详细信息。 这部分描述了Spring Security中HTTP基本认证的工作原理。首先,我们看到WWW-Authenticate标头被发送回未经身份验证的客户端: 首先,用户对未经授权的资源 /private …

助力工业生产质检,基于YOLOv7【tiny/l/x】不同系列参数模型开发构建生产制造场景下布匹瑕疵缺陷检测识别分析系统

纯粹的工业制造没有办法有长久的发展过程&#xff0c;转制造为全流程全场景的生产智造才是未来最具竞争力的生产场景&#xff0c;在前面的开发实践中我们已经涉足工业生产场景下进行了很多实地的项目开发&#xff0c;如&#xff1a;PCB电路板缺陷检测、焊接缺陷检测、螺母螺钉缺…

利用tpu-mlir工具将深度学习算法模型转成算能科技平台.bmodel模型的方法步骤

目录 1 TPU-MLIR简介 2 开发环境搭建 2.1 下载镜像 2.2 下载SDK 2.3 创建容器 2.4 加载tpu-mlir 3 准备工作目录 4 onnx转mlir文件 5 mlir转INT8 模型 5.1 生成校准表 5.2 便以为INT8对称量化模型 参考文献&#xff1a; 之前是用nntc转算能科技的模型的&#xff0c…

YOLO 自己训练一个模型

一、准备数据集 我的版本是yolov8 8.11 这个目录结构很重要 ultralytics-main | datasets|coco|train|val 二、训练 编写yaml 文件 # Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..] path…

【每日一题】3.LeetCode——相交链表

&#x1f4da;博客主页&#xff1a;爱敲代码的小杨. ✨专栏&#xff1a;《Java SE语法》 ❤️感谢大家点赞&#x1f44d;&#x1f3fb;收藏⭐评论✍&#x1f3fb;&#xff0c;您的三连就是我持续更新的动力❤️ &#x1f64f;小杨水平有限&#xff0c;欢迎各位大佬指点&…

向日葵远程控制Mac版权限设置教程解决远程无法控制问题

很多Mac新手安装向日葵远程控制Mac版后&#xff0c;根据提示设置了权限后发现无法远程控制&#xff0c;其实主要是你只勾选了中文的“向日葵权限选项“&#xff0c;而忘记了勾选了向日葵另外一个英文选项权限。 判断是否完全开启控制权限 打开向日葵访问权限设置面板&#xf…

VsCode CMake调试QT QString等变量不显示具体值,调试中查看qt源码 (可视化调试配置Natvis)

遇到的问题 当我们在VsCode使用CMake来调试QT程序时&#xff0c;可能会出现变量是十六进制的地址&#xff0c;而看不到具体的值。例如&#xff1a; 如何解决 这时候需要手动设置一下natvis &#xff08;资源以上传&#xff0c;可以直接下载&#xff09; 在.vscode文件下找到…

Android-System fastboot 介绍和使用

一、fastboot简介 在android手机中&#xff0c;fastboot是一种比recovery更底层的刷机模式。 实际操作中&#xff1a;fastboot是一种线刷&#xff0c;就是使用USB连接手机的一种刷机模式。相对于某些系统来说&#xff0c;线刷比卡刷更可靠&#xff0c;安全。recovery是一种卡刷…

分布式应用程序设计项目管理

1. 项目的定义 项目是一种特定的、新颖的行动&#xff0c;目的是以有条不紊、逐步的方式构建一个尚未存在确切对应物的未来现实。它是对精心制定的需求的回应&#xff0c;旨在满足业主的需要。项目包括一个可能是物理或智力的目标&#xff0c;并且需要使用给定的资源来执行一系…

SpringMVC-异常处理

目录 HandlerExceptionResolver接口 使用注解实现异常分类管理(ControllerAdvice 和 ExceptionHandler) 使用 ControllerAdvice 对不同的 Controller 分别捕获异常并处理 HandlerExceptionResolver接口 在SpringMVC中&#xff0c;提供了一个全局异常处理器&#xff0c;用于…

特征抽取-----机器学习pycharm软件

导入包 from sklearn.datasets import load_iris # 方法datasets_demo()数据集使用 from sklearn.feature_extraction import DictVectorizer # 方法dict_demo()字典特征抽取用 from sklearn.feature_extraction.text import CountVectorizer # 方法count_demo()文本特征抽…

民用激光雷达行业简析

01. 激光雷达是“机器之眼” • 激光雷达是一个通过发射激光并接受发射激光同时对其进行信号处理&#xff0c;从而获得周边物体距离等信息的主动测量装置。 • 激光雷达主要由光发射、光扫描、光接收三大模块组成。光发射模块集成了驱动、开关和光源等芯片。光接收模块集成了…

【AIGC】Diffusers:扩散模型的开发手册说明2

前言 扩散器被设计成一个用户友好且灵活的工具箱&#xff0c;用于构建适合您用例的扩散系统。工具箱的核心是模型和调度程序。然而 DiffusionPipeline 为方便起见将这些组件捆绑在一起&#xff0c;但您也可以解包管道并分别使用模型和调度程序来创建新的扩散系统。 解构 Stab…

文件备份管理软件系统

1、我解决的问题 避免因为硬盘故障&#xff0c;导致数据丢失; 避免因为中了病毒&#xff0c;文件被加密&#xff0c;无法取回; 避免了员工恶意删除文件; 规范企业内部的文件管理&#xff0c;使它井井有条; 防范于未然&#xff0c;不必再为可能的风险担忧; 2、我的优点 我支持定…

第二篇【传奇开心果系列】beeware的toga开发移动应用示例:手机应用视频播放器

传奇开心果博文系列 系列博文目录beeware的toga开发移动应用示例系列 博文目录一、项目目标二、编程思路三、初步实现项目目标示例代码四、第一次扩展示例代码五、第二次扩展示例代码六、第三次扩展示例代码七、第四次扩展示例代码八、第五次扩展示例代码九、第六次扩展示例代码…

1.19号网络

超时检测 概念 1> 在网络通信中&#xff0c;有很多函数是阻塞函数&#xff0c;会导致进程的阻塞&#xff0c;例如&#xff1a;accept、recv、recvfrom、等等 2> 为了避免进程在阻塞函数处&#xff0c;无休止的等待&#xff0c;我们可以设置一个超时时间&#xff0c;当…