上传、下载

简介:

1、上传、下载思路

一、上传思路

写上传页面  

在form表单中加enctype=multipart/form-data属性,把表单提交方式设置为post

提交表单后,表单处理页面会生成$_FILES超级全局变量数组

用move_uploaded_file()函数 把上传文件移动到服务器的目标目录中

上传成功显示成功 失败显示失败   

 

二、上传原理:客户端发送文件到服务器,服务器将文件放到临时目录,用move_uploaded_file()函数将文件放到服务器指定目录中

 

三、下载思路

在列表中点要下载的文件  

到下载的php文件接收文件名  

写入文件的类型

激活一个下载的窗口

读文件

 

//接收文件路径

$path = $_GET['path'];

$filename = substr($path,strrpos($path,"/")+1);

//文件类型

header('Content-type: image/pjpeg');

//激活一个下载的窗口  (文件名)

header("Content-Disposition: attachment; filename=$filename");

//读文件

readfile($path);



补充内容:

设置php配置文件中的指定,用于精细的调节php的文件上传功能。

file_uploads=on

确定服务器上的php脚本是否可以接受http文件上传

Memory_limit:   128M

设置脚本可以分配的最大内存量,防止失控的脚本独占服务器内存。

Upload_max_filesize:限制php处理上传文件大小的最大值 2M

Post_max_size:限制通过post方法可以接受信息的最大值。 8M

Upload_tmp_dir:上传文件存放的临时路径

 

$_FILES多维数组:用于存储各种与文件上传有关信息

$_FILES[myfile][name]:源文件名包括扩展名

$_FILES[myfile][size]:已上传文件的大小

$_FILES[myfile][tmp_name]:上传文件的临时文件名

$_FILES[myfile][type]:上传文件的类型

$_FILES[myfile][error]:伴随文件上传时产生的错误信息

 

0:没有任何错误

1:上传文件的大小超出了在php配置文件中Upload_max_filesize设置的最大值 

2:表示上传文件大小超出了html表单中MAX__FILE__SIZE选项所指定的值

3:表示文件只被部分上传                    

4表示没有上载任何文件


文件上传的原理:

客户端将文件提交上传,服务器端先将文件移动到临时文件夹里,再移动到服务器端文件夹中 

实现步骤: 

① 设置表单,method必须是post方式,还要给表单加一个上传表示:enctype="multipart/form-data"  

② 提交到服务器中去用一个全局数组来接收:$_FILES

$_FILES[myfile][name]:源文件名包括扩展名

$_FILES[myfile][size]:已上传文件的大小

$_FILES[myfile][tmp_name]:上传文件的临时文件名

$_FILES[myfile][type]:上传文件的类型

$_FILES[myfile][error]:伴随文件上传时产生的错误信息 

③ 将文件从临时文件夹里移动到服务器端文件夹里

//获取临时文件所在的路径信息

$file_name=$_FILES['myfile']['tmp_name'];

//获取上传后的文件名

$path="./img/".$_FILES['myfile']['name'];

//移动文件 move_uploaded_file(临时文件夹的路径,服务器端文件夹)

if(move_uploaded_file($file_name,$path)){

echo "成功";

}else{

echo "失败";

}


      本文转自噼里啪啦啦 51CTO博客,原文链接:http://blog.51cto.com/pilipala/1670692,如需转载请自行联系原作者










相关文章
|
存储 安全 算法
【接口加密】Java中的接口加密实践
【接口加密】Java中的接口加密实践
|
Python
Python懒羊羊
Python懒羊羊
538 0
|
存储 缓存 数据安全/隐私保护
华为VRP系统基础
该文简单的介绍了华为的数据通信专门开发的管理系统,华为VRP, 华为VRP系统的知识是数通小白必备。
|
12月前
|
运维 数据挖掘 API
阿里云百炼控制台全新升级
阿里云百炼控制台全新升级,更开放、高效、易用!主要变化包括:模型、应用等功能模块拆分,贴合使用场景;模型按“家族”聚类,搜索便捷;子业务空间授权入口调整,支持批量操作;应用相关功能集成在“应用”页面;新增MCP管理和广场,实现一键部署免运维,大幅降低开发门槛。
1508 14
阿里云百炼控制台全新升级
|
Shell Linux C语言
Linux初学者必备:全面掌握核心命令
Linux命令是操作系统的核心组成部分,用于管理和操作文件系统、网络、硬件资源以及执行各种任务。下面列出了一些常用的Linux命令及其基本用途,
387 1
Linux初学者必备:全面掌握核心命令
|
运维 数据可视化 Devops
IT团队提升业务认知的5个秘诀|云效BizDevOps主题系列
践行 BizDevOps ,科技更需要向前一步,与业务并肩作战。 在业务认知上的三个层次包括理解业务基本面、解读业务策略变化、提议数字化方案。 5 个有效秘诀包括: a.形成简版的业务基本面知识条目,设为基线,进行考试。 b.翻转课堂, IT 团队通过业务反串讲来习得业务知识。 c.定期进行业务知识擂台赛,加速业务策略变为显性知识的螺旋。 d.将组织中的提案逻辑模板化,通过专项的刻意训练,让 IT 团队能够自如地进行数字化提案。 e.定期进行共创提案会,找到“四两拨千斤”的数字化的举措,创造价值。
9544 156
IT团队提升业务认知的5个秘诀|云效BizDevOps主题系列
|
机器学习/深度学习 数据可视化 搜索推荐
12个最常用的matplotlib图例 !!
12个最常用的matplotlib图例 !!
447 1
|
分布式计算 Cloud Native 安全
Rancher:容器编排平台的领军者
Rancher是一款容器编排平台,可以帮助企业快速构建、部署和管理容器化应用。本文将详细介绍Rancher的概念和实践,包括其核心特性、优势以及在实际应用中的使用案例。
403 5
|
人工智能 弹性计算 缓存
带你读《弹性计算技术指导及场景应用》——2. 技术改变AI发展:RDMA能优化吗?GDR性能提升方案
带你读《弹性计算技术指导及场景应用》——2. 技术改变AI发展:RDMA能优化吗?GDR性能提升方案
905 1
|
开发框架 .NET PHP
Web Deploy配置并使用Visual Studio进行.NET Web项目发布部署
Web Deploy配置并使用Visual Studio进行.NET Web项目发布部署
356 1