php文件上传和下载

PHP文件上传和下载 php 上传 下载 立即下载

很多网站都会有文件的上传和下载这个功能,所以学习php的文件上传和下载对一个php开发者来说是必不可少的。文件的下载相对于上传更简单,所以先介绍文件的上传吧。

边上代码边说好了。

<form enctype="multipart/form-data" method="post" action="">
上传文件<input type="file" name="myFile"/>
<input type="submit" value="上传"/>

相比如普通的表单,文件上传多了enctype="multipart/form-data"这一段代码,它的意思就是设置对文件的编码格式,默认情况下是不支持文件上传的,必须加上这个设置。还有就是input标签里面的type也应该写为file。要想上传文件,这两处都必须修改。

下面是php代码部分:

先说明一下,在html页面中点了"上传"按钮之后,文件其实已经通过httpd协议上传到服务器了,默认的保存位置在c:/windows/temp目录下,不过后缀名是.tmp,代表临时文件。可以通过修改php.ini配置文件改变默认保存位置,在下面会逐一介绍。

主要会用到

is_uploads_file($fileName)   //判断上传的文件是否生成了临时文件,生成了返回true,否则返回false
move_uploaded_file($fileName,$destination)     //将临时文件移动到指定的位置,成功返回true,失败返回false
这两个函数

来个最基本的案例进行讲解:

if(is_uploaded_file($_FILES['myFile']['tmp_name']))    //$_FILES是超全局变量之一,$_FILES[]['tmp_name']是文件默认保存的路径
{
    if(move_uploaded_file($_FILES['myFile']['tmp_name'],"F:/"))  //将临时文件转移到F盘下,路径可以自己改
  {
    echo "文件上传成功";
  }
}
下面再注意一些小细节,文件上传就完美实现了,是不是感觉很简单。

文件上传的大小其实是有限制的,默认是2M,也可以修改,下面会将这些配置一起讲解。如果太大了,我们需要对其进行处理。

$_FILES[]['size']可以获取到文件的大小,按字节计算

if($_FILES['myFile']['size']>1024*1024*2)
{
     echo "上传文件不得大于2M";
     exit();
}
这样就可以将大于2M的文件进行排除了,
文件上传的类型在某些特殊要求下也需要进行限制,比如上传头像,肯定只能上传图片格式的文件。

if($_FILES['myFile']['type']!="image/jpg" && $_FILES['myFile']['type']!="image/pjpeg") //这里只列举了jpg格式的图片,还可以自己添加png或者gif格式的图片
	{
		echo "只能上传图片类型的文件";
		exit();
	}
有些用户可能会把.txt文件改成.jpg文件来上传,这肯定是假的图片,所以也需要排除:

getimagesize($fileName);  //得到指定图片的信息,如果没有返回false,通过改后缀名的方式肯定返回的false

文件上传的时候防止文件重名产生覆盖:
可以通过

<pre name="code" class="php">$str=strrchr($_FILES['name'],'.');    //假如是txt文件,就会返回".txt",strrchr($str,$needle),返回$str中$needle最后出现的位置之后的字符串
$fileName=md5(uniqid(microtime(true)),true).$str; //这样生成的字符是独一无二的,md5()和uniqid()的具体用法请查看手册,再加上文件的后缀名

或者可以给每个用户在服务器端创建一个独立的文件夹来存放该用户上传的文件(这也是很多网站的一般做法),这里就不介绍了,以免过于繁琐

简单介绍下多文件上传的原理:在input标签中把name的值设为数组,比如name="myfile[]",然后在接受页面获取myfile数组的长度进行循环单文件上传即可。

下面说明一下php.ini中关于文件上传部分的配置:

file_uploads=On //支持http上传,如果填Off,文件就上传不上去了

upload_tmp_dir=  //临时文件的保存目录

upload_max_filesize=2M //允许上传文件的最大值

max_file_uploads=20 //允许一次上传的最大文件数

post_max_size=8M //post方式发送数据的最大值

文件上传就介绍到这。下面是文件下载:

$fileName=$_GET['fileName'];    //用get方式获取到要下载的文件名
header('content-disposition:attachment;fileName='.basename($fileName));  //cotent-disposition是指以什么方式下载,attachement是指以附件的方式,basename($fileName)是获取文件名,这里是为了防止文件名带有路径
header('content-length:'.filesize($fileName));  //这里是取得文件的大小
readfile($fileName);  //输出文件
这四行代码就搞定文件下载了。








保姆级教程:用YOLOv5+ROS2 Humble搞定奥比中光Dabai DCW深度相机的3D物体定位 本教程详细介绍了如何使用YOLOv5模型和ROS2 Humble系统,结合奥比中光Dabai DCW深度相机实现3D物体定位。从环境配置、模型部署到深度数据融合,提供完整的实战指南,帮助开发者快速掌握三维坐标提取技术,适用于机器人开发和计算机视觉应用。 阅读详情

相关推荐

STM32实战——七段数码管动态扫描技术详解

本文详细解析了STM32控制七段数码管的动态扫描技术,包括硬件连接、CubeMX配置及编程实现。通过分时复用原理和优化代码逻辑,实现稳定显示效果,并解决亮度不均、闪烁等常见问题。适合嵌入式开发者快速掌握STM32数码管驱动技术。

weixin_42561143的博客 279

php中实现文件上传下载的三种解决方案(推荐)

_FILES['myFile']['tmp_name'] 文件被上传后在服务端储存的临时文件名,一般是系统默认。php默认的post_max_size 为2M.如果 POST 数据尺寸大于 post_max_size $_POST 和 $_FILES superglobals 便会为空.$_FILES['myFile']['type'] 文件的 MIME 类型,需要浏览器提供该信息的支持,例如"image/gif"。允许上传文件的最大大小,此指令必须小于post_max_size。

Mr_Zang666的博客 772

【软件系统架构】系列六:MBSE(基于模型的系统工程)

基于模型的系统工程(MBSE)是一种以模型为核心的系统工程方法论,通过结构化、可视化的模型取代传统文档,实现从需求到验证的全生命周期管理。MBSE采用SysML建模语言,包含需求、功能、架构和验证四大要素,支持自动追踪、仿真分析和代码生成。相比文档式工程,MBSE具有变更影响自动分析、跨团队协作和高可视化等优势,广泛应用于航空航天、汽车电子等领域。典型开发流程包括需求建模、行为建模、架构建模等阶段,配合MagicDraw、Cameo等工具链实现。MBSE正与数字孪生、AI技术融合,推动自动化建模和智能验证的

moton2017的博客 2783

PHP 中如何实现文件的上传与下载功能?

在 PHP 中实现文件上传,首先要确保服务器的php.ini文件中相关配置正确,如upload_max_filesize和post_max_size设置合适的大小限制。在 HTML 表单中,需设置enctype="multipart/form-data",表单提交到 PHP 页面后,通过$_FILES超全局变量获取上传文件的信息。此代码先检查文件是否存在,存在则设置一系列 HTTP 头,包括文件类型、文件名、文件大小等,最后通过readfile函数输出文件内容。

hoopp788的博客 301

PCL学习笔记(四)——点云曲面重建

文章目录一、凸包算法二、 单纯的点云数据固然很好,但仅仅是点的话仍是不够的,因为这不利于我们后续对实体对象的渲染与各种应用,如计算实体的表面积、体积等等,所以这就需要我们对实体进行点云的曲面重建。 一、凸包算法 在计算机图形学中,凸包是指在任意维空间中包含某一有限点集P的最小凸集,它由凸包顶点构成,在二维上其表现形式为一个凸多边形,而在三维上则表现为一个凸多面体。在二维层面上来讲,最常用的凸包算法有Graham扫描法和Jarvis卷包裹法,但前者并不适用于三维层面,后者倒是可以扩展到三维。除此之外,在

dayuhaitang1的博客 6912

图神经网络实战(6)——使用PyTorch构建图神经网络

图数据集通常比简单的连接集合更加丰富,因为节点和边可以具有表示分数、颜色、单词等特征。包含这些额外信息在输入数据中对于生成最佳嵌入至关重要。在本节中,我们将使用 Cora 和 Facebook Page-Page 数据集,首先将它们视为表格数据集,观察香草神经网络在节点特征上的表现如何。然后,尝试在神经网络中加入拓扑信息,实现图神经网络 (Graph Neural Networks, GNN) 架构:一个同时考虑节点特征和边的简单模型。最后,我们将比较两种架构的性能。

盼小辉丶的博客 2万+

PHP文件上传与下载

修改 PHP.ini 配置文件可以定制上传机制,通过 phpinfo() 函数可以查看到 PHP.ini 文件所在位置。

代码炼金术 3589

基于RK3568的YOLOv11模型端侧推理优化与部署实战指南

在AI边缘计算领域,瑞芯微RK3568芯片凭借其强大的NPU算力和丰富的接口资源,成为了众多开发者的首选平台。然而,瑞芯微官方文档虽然提供了YOLO11预训练模型的部署方案,但对于需要自定义数据集训练的开发者来说,从模型训练到板端部署的完整流程却缺乏详细指导。本文将带你走完从环境搭建、数据准备、模型训练到最终板端部署的完整技术路线,并分享实际开发中遇到的各种坑点和解决方案。让我们一起探索如何在RK3568平台上实现30FPS稳定推理的YOLO11目标检测应用!

m0_64661770的博客 115

php文件上传和下载删除,php文件上传、下载和删除示例

php文件上传、下载和删除示例大体思路如下,具体内容如下一.文件上传1.把上传文件的区域做出来div12.把显示文件的区域做出来div23.提交表单,上传文件4.服务器接收文件数据用$_FILE[name]接收5.处理数据,看上传文件是否有错误错误有如下几种:1).上传的文件超过了 php.ini 中 upload_max_filesize 选项限制的值2).上传文件的大小超过了 HTML 表单中...

weixin_42385265的博客 210

华为MetaERP的交易计税模块(即“税务引擎”)在设计上确实受到Oracle E-Business Tax(EBTax)等国际先进税务架构理念的影响,但结合了华为自身全球化运营、多准则合规、高并发处

华为MetaERP税务引擎在借鉴Oracle EBTax三层架构基础上,创新升级为五层智能税务架构,实现从"税码驱动"到"场景+规则+AI驱动"的转变。该模块采用云原生微服务架构,支持全球190+国家税务规则动态加载,具备实时计税、多准则并行处理、AI风险预警等核心能力,深度适配金税工程等国内合规要求。通过税务数字孪生、RPA机器人等创新,形成自主可控的智能税务中枢,为跨国企业提供全栈国产化税务解决方案,重新定义ERP税务管理范式。

金牌架构师 114

【VTK】VTK中的光标样式

本文分享VTK中的光标设置相关内容技术,希望对各位小伙伴有所帮助!

qq_40041064的博客 1930

php上传文件和下载文件,PHP实现文件上传与下载

本文实例为大家分享了PHP实现文件上传与下载的具体代码,供大家参考,具体内容如下主页index.php图片操作#contains {width: 500px;margin: 0 auto;text-align: center;color: #0F0;}th {background: #ccc;}td {width: 150px;height: 50px;text-align: center;}图片...

weixin_42373997的博客 261

手把手教你学Simulink--基于光伏(PV)系统的建模与仿真场景:-不同天气条件下光伏系统的输出性能分析

本文介绍了使用Simulink和Simscape Electrical工具箱进行光伏系统建模与仿真的完整流程。内容涵盖准备工作、模型构建、仿真分析三大步骤,重点演示了如何模拟不同天气条件(光照强度、温度变化)对光伏输出性能的影响。通过添加PVArray模块、配置参数、设置环境变化条件、连接测量仪器等操作,实现了光伏系统在动态天气条件下的输出特性分析。文章还提供了仿真参数设置建议和结果分析方法,帮助用户理解环境因素与光伏性能的关联性,为光伏系统设计和优化提供参考。

MHD0815的博客 189

php之文件上传和下载

1.文件上传代码还需要进一步封装下。。<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> </head> <body> <form action="upload.php" method="post" enctype="multipart/form-data">名称<input ty

ReadyYes的专栏 792

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

php上传文件下载,php文件上传、下载和删除示例

php文件上传、下载和删除示例大体思路如下,具体内容如下一.文件上传1.把上传文件的区域做出来div12.把显示文件的区域做出来div23.提交表单,上传文件4.服务器接收文件数据用$_FILE[name]接收5.处理数据,看上传文件是否有错误错误有如下几种:1).上传的文件超过了 php.ini 中 upload_max_filesize 选项限制的值2).上传文件的大小超过了 HTML 表单中...

weixin_39667652的博客 348

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

如何处理PHP中的文件上传和下载?

你应该验证文件名,确保它是你期望的文件之一,或者通过白名单机制来限制可下载的文件。文件上传和下载是Web开发中常见的功能,需要仔细处理以确保安全性和可靠性。通过正确配置服务器、编写安全的PHP脚本以及仔细设计前端表单,你可以实现稳定且安全的文件上传和下载功能。处理PHP中的文件上传和下载是Web开发中常见的任务,涉及到前端表单的设计、后端脚本的编写以及服务器配置等多个方面。此外,对于上传的文件,你也应该进行安全检查,如检查文件类型、大小限制、验证上传者身份等,以防止恶意文件上传。,这是上传文件所必需的。

Layla_c的博客 626

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

如何实现php文件上传下载,php实现文件上传和下载的方法(代码)

本篇文章给你们带给的内容是关于php实现文件上传跟下载的方式(代码)php视频上传代码,有一定的参考价值php视频上传代码,有须要的同学可以参考一下,希望对你有所帮助。1.传入参数作为function里递归的keyfunction test2($name){$ar = (object) array($name => 1,"image_id"=>1234);echo $ar->$n...

weixin_29785723的博客 534

php文件上传和下载相关知识

php文件上传和下载相关知识

空白_回忆的博客 261

如何使用PHP进行文件上传和下载?

假设你有一个表单,就像一张纸,你可以在上面写上你的名字、年龄等信息。PHP就像老师的手,帮助老师接过你的纸和照片,并把它们放到大盒子里。注意:在实际应用中,为了安全起见,你应该对上传的文件进行一些验证和处理,比如检查文件类型、大小、扩展名等。想象一下,你告诉老师你想要回你之前交上去的照片,老师就会从大盒子里找到你的照片,并把它交给你。想象一下,你有一个大盒子(我们可以称之为服务器),你可以把东西(文件)放进去,也可以把东西拿出来。首先,我们来看看如何把东西(文件)放进大盒子(服务器)里,这就是文件上传。

长风破浪会有时的博客 384

php文件上传下载删除,php文件上传、下载和删除示例.pdf

php文文件件上上传传、、下下载载和和删删除除示示例例php文件上传、下载和删除示例大体思路如下,具体内容如下一一.文文件件上上传传1.把上传文件的区域做出来div 12.把显示文件的区域做出来div23.提 表单,上传文件4 .服务器接收文件数据用$_ FILE[name]接收5.处理数据,看上传文件是否有错误错误有如下几种:1).上传的文件超过了 php.ini 中 upload_max_ ...

weixin_42512139的博客 159

php 删除上传文件,php实现文件上传、下载和删除的方法

这篇文章主要为大家详细介绍了php文件上传、下载和删除示例,具有一定的参考价值,感兴趣的小伙伴们可以参考一下php文件上传、下载和删除示例大体思路如下,具体内容如下一.文件上传1.把上传文件的区域做出来p12.把显示文件的区域做出来p23.提交表单,上传文件4.服务器接收文件数据用$_FILE[name]接收5.处理数据,看上传文件是否有错误错误有如下几种:1).上传的文件超过了 php.ini ...

weixin_30015183的博客 356

清除uploadfile php,php文件上传、下载和删除示例

php文件上传、下载和删除示例大体思路如下,具体内容如下一.文件上传1.把上传文件的区域做出来div12.把显示文件的区域做出来div23.提交表单,上传文件4.服务器接收文件数据用$_FILE[name]接收5.处理数据,看上传文件是否有错误错误有如下几种:1).上传的文件超过了 php.ini 中 upload_max_filesize 选项限制的值2).上传文件的大小超过了 HTML 表单中...

weixin_35020262的博客 200

在PHP中实现文件上传和下载功能需要分别处理前端表单、服务器端验证、文件存储和提供下载链接

在PHP中实现文件上传和下载功能需要分别处理前端表单、服务器端验证、文件存储和提供下载链接。以下是完整实现方案:一、文件上传htmlenctype="multipart/form-data":必须添加,否则无法上传文件。2. 处理上传(PHP)phpphp// 上传目录(需确保可写权限)// 限制5MB// 允许的类型// 获取文件信息// 安全处理:重命名文件(防止覆盖和路径遍历攻击)// 验证文件。

qq_43709504的博客 1383
上一篇: phpsession和cookie
下一篇: ajax
UKey_
博客等级 码龄10年 258粉丝 186原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值