第一节 上传设置

客户端设置

form:method=post、enctype="multipart/form-data"

input:type=file

提交

服务端设置

在php.ini中进行设置:

默认uploadmaxfilesize = 2M,如果你想上传超过8M的文件,比如:20M,你在设定uploadmaxfilesize = 20M的同时,还要修改postmaxsize选项(默认为8M)。否则post数据超出限制,$_FILES将会为空(报错)。

$_FILES数组

$_FILES超全局数组中,包含着从客户端提交文件的全部信息:

array (size=1)'fname' => //上传文件表单项的namearray (size=5)'name' => string 'home.html' (length=21) //上传文件的名称'type' => string 'text/html' (length=9) //文件类型(常见文件都可以上传)'tmp_name' => string 'C:\wamp\tmp\php57A2.tmp' (length=23) //上传文件的临时文件名'error' => int 0 //上传文件遇到的错误号'size' => int 28131 //上传文件的大小

上传步骤

var_dump($_FILES);$file=$_FILES["fname"];

获取$_FILES文件 临时文件

$tmp_file=$file["tmp_name"];

获取后缀名

$ext=pathinfo($file["name"],PATHINFO_EXTENSION);//后缀名

创建新文件名

$new_file="file".rand(1,1000000).".".$ext;

保存路径

$path="./files";

格式化路径

$path=rtrim($path,'/')."/";

拼接上传目录

$new_file=$path.$new_file;

临时文件转换成正式文件

move_uploaded_file($tmp_file,$new_file);

PHP

第二节 下载设置

浏览器对于可识别的文件格式(html、txt、png、jpg等),默认是直接打开的,对于无法识别的文件,才作为附件来下载。为了可以让可识别的文件也直接可以下载,需要进行如下设置:

1. 读取文件

$fliename=$_GET["name"];$filetype=$_GET["type"];

2. 文件的描述信息 Content-Disposition(内容配置)指定为attachment(附件)(必须)

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

3. 指定被下载文件的类型(非必须)

header("Content-Type:{$filetype}");

4. 指定被下载文件大小(非必须)

header("Content-Length:".filesize($filename));

5. 将内容读入内存缓冲区

readfile($filename);

注意:在 readfile($filename) 之前,不能有任何输出语句(错误信息、var_dump调试语句,echo输出等),否则下载的文件会出错。

PHP-文件处理系统「程序员培养之路第三十七天」

PHP-错误日志处理「程序员培养之路第三十六天」

PHP-日期时间操作函数「程序员培养之路第三十五天」

php上传,PHP-文件上传和下载「程序员培养之路第三十八天」相关推荐

  1. java文件上传_Java文件上传细讲

    什么是文件上传? 文件上传就是把用户的信息保存起来. 为什么需要文件上传? 在用户注册的时候,可能需要用户提交照片.那么这张照片就应该要进行保存. 上传组件(工具) 为什么我们要使用上传工具? 为啥我 ...

  2. php 超过100m文件上传,科技常识:apache+php上传大文件以上传100M为例

    科技常识:apache+php上传大文件以上传100M为例 2021-03-19 18:54:57 今天小编跟大家讲解下有关apache+php上传大文件以上传100M为例 ,相信小伙伴们对这个话题应 ...

  3. java 图片上传_java web图片上传和文件上传实例

    本篇文章主要介绍了java web图片上传和文件上传实例,具有一定的参考价值,有需要的可以了解一下. 图片上传和文件上传本质上是一样的,图片本身也是文件.文件上传就是将图片上传到服务器,方式虽然有很多 ...

  4. java web文件上传详解_java web图片上传和文件上传实例详解

    java web图片上传和文件上传 图片上传和文件上传本质上是一样的,图片本身也是文件.文件上传就是将图片上传到服务器,方式虽然有很多,但底层的实现都是文件的读写操作. 注意事项 1.form表单一定 ...

  5. 图片和视频的上传(文件上传通用)

    流程如下: 1.先引入el-upload 2.调用上传前事件 3.上传前事件中将file文件转formData 4.调用后端oss接口上传文件 5.上传完成后回显数据 6.点击图片/视频预览 图片和视 ...

  6. Flask使用bootstrap为HttpServer添加上传文件功能 #华为云·寻找黑马程序员#

    一句题外话 昨天是老妈的生日,可惜周一上班没有办法为她庆生,只能电话问候下.但还是在这里补说一句"生日快乐!"(ps:我妈每天都会看我的公众号,哈哈-) 提个小需求 今天朋友说,之 ...

  7. wav文件 服务器失败,.wav存储在服务器上的声音文件在加载web应用程序时无法播放...

    这是我试图实现的场景:与Web应用程序存储在同一服务器上的声音,在客户端遇到条件时播放.当我在IDE中运行它并将webconfig更改为指向数据库所在的服务器时,它完美地工作.但是,当我部署并通过浏览 ...

  8. 世界上最成功的人一开始是个程序员-《程序员大本营》1999版

    //找到这篇我在1999年出版<程序员大本营>的短文,转眼间已过去11年. 世界上最成功的人一开始是个程序员.在1974年,Bill Gates为Altair 8800写了一个4K的编译器 ...

  9. php 任意文件上传,任意文件上传漏洞

    就是记录下这次的ctf过程,总的来说,亮点不在题目,而是两道题的结合. 题目分析 按照出题的思路,大致就是要我们上传一些可执行的代码,然后找出服务器上的flag文件.因此,我们这次的题目就很简单了,只 ...

最新文章

  1. C++ 关于方法传值
  2. 线性回归 linear regression
  3. 189. 旋转数组 golang
  4. github和pypi_如何将GitHub用作PyPi服务器
  5. 小红书笔记_小红书的沙雕笔记,害人不浅啊
  6. linux教程 sed命令的用法,Linux基础教程之文件三剑客sed命令用法详解
  7. tensorflow 转张量类型为float_一文看懂TensorFlow计算图
  8. php 5.5 sqlserver,thinkphp5 连接sqlserver windows
  9. 计算机网络—物理层(思维导图)
  10. csv可以保存特殊字符_浅谈CSV注入漏洞
  11. poi ppt 作者属性 修改_POI之PPT文本框生成及样式设置实例
  12. 用python写的,一个中英文转摩斯电码小程序
  13. itextpdf生成pdf,html转pdf,pdf转图片
  14. 电子商务专业英语参考试卷
  15. Visio 安装暴雷记录
  16. 爬虫代理哪家强?十大付费代理详细对比评测!
  17. 深度学习LSTM框架图PPT高清
  18. 【DKN】(一)KCN详解
  19. 亿发定制ERP企业管理系统,适用中小型企业的经济实惠的解决方案
  20. SOA Presentation - SOA概念介绍

热门文章

  1. String, StringBuilder 与StringBuffer的区别与联系
  2. Nutch关于robot.txt的处理
  3. AngularJS快速上手
  4. TensorFlow学习笔记(十一)读取自己的数据进行训练
  5. TensorFlow学习笔记(九)tf搭建神经网络基本流程
  6. redis底层数据结构简述
  7. angular input和output
  8. mysql设置唯一键
  9. 2019第一篇万字长文!30+家一线投资机构已出投资新策略...
  10. 【转】编写微信聊天机器人4《聊天精灵WeChatGenius》:实时获取到微信聊天消息,hook数据库插入操作。...