文件上传原理:

将客户端的文件上传到服务器端,再将服务器端的临时文件移动到指定目录即可。

客户端配置:

1.表单页面

2.表单的发送方式为post

3.添加enctype=”multipart/form-data”

$_FILES中保存着上传文件的信息

name:上传文件的名称

type:上传文件的MIME类型

tmp_name:上传到服务器上的临时文件名

size:上传文件大小

error:上传文件的错误号

move_uploaded_file(tmpname,destination):将服务器上临时文件移动到指定目录,并命名。

如:

move_uploaded_file(tmpname,"uploads/".filename);

还有:

copy(src,dst);

文件上传配置:php.ini

服务器端配置:

file_uploads = on ,支持HTTP上传

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

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

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

post_max_size = 8M,POST方式发送数据的最大值

max_execution_time = -1,设置了脚本被解析器终止之前允许的最大执行时间,单位为秒,防止程序写的不好而占尽服务器资源

max_input_time = 60,脚本解析输入数据允许的最大时间,单位是秒

max_input_nesting_level = 64,设置输入变量的嵌套深度

max_input_vars = 1000,接受多少输入的变量(限制分别应用于GET,_POST,$_COOKIE超全局变量)指令的使用减轻了以哈希碰撞来进行拒绝服务攻击的可能性。如有超过指令指定数量的变量,将会导致E_WARING的产生,更多的输入变量将会从请求中截断。

memory_limit = 128M,最大单线程的独立内存使用量。也就是一个web请求,给与线程最大的内存使用量的定义。

注意:在客户端限制的代码,可以通过在浏览器中修改代码,而使限制没有用。所以限制都应该在服务器端。

服务器端限制:

限制上传文件大小(通过size)

限制上传文件类型(in_array(后缀,数组),判断文件后缀是否在指定规定类型的数组里)

检测是否为真实图片类型(getimagesize)

检测是否为HTTP POST方式上传(is_uploaded_file,返回true表示是通过PHP的post方式上传的)

生成唯一字符串:

md5(uniqid(microtime(true),true))').addClass('pre-numbering').hide();

$(this).addClass('has-numbering').parent().append($numbering);

for (i = 1; i <= lines; i++) {

$numbering.append($('

').text(i));

};

$numbering.fadeIn(1700);

});

});

以上就介绍了PHP实现文件上传与下载,包括了文件上传,php方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

php实现附件上传下载,PHP实现文件上传与下载相关推荐

  1. 【文件上传漏洞-01】文件上传漏洞概述、防御以及WebShell基础知识补充

    目录 1 文件上传漏洞概述 2 文件上传漏洞防御.绕过.利用 2.1 黑白名单策略 3 WebShell基础知识补充 3.1 WebShell概述 3.2 大马与小马 1 文件上传漏洞概述 概述:文件 ...

  2. 文件上传linux服务器,Linux 文件上传Linux服务器

    进入命令行 在图形化桌面出现之前,与Unix系统进行交互的唯一方式就是借助由shell所提供的文本命令行界面(command line interface,CLI).CLI只能接受文本输入,也只能显示 ...

  3. SSM框架使用Layui文件上传插件实现多文件上传(多文件列表)

    SSM框架使用Layui文件上传插件实现多文件上传(多文件列表) pom.xml文件的配置 想要实现SSM框架实现多文件上传,必要的jar包必须要在pom.xml文件中引入.如下: <!--co ...

  4. 00截断上传绕过_【文件上传与解析】文件上传与解析漏洞总结v1.0

    点击上方"公众号" 可以订阅哦! Hello,各位小伙伴晚上好~ 这里是依旧勤劳写公众号的小编~ 今天本公众号将推出一个新的模块,那就是漏洞知识点总结模块!!!(此处应有掌声~) ...

  5. asp.net实现ftp上传代码(解决大文件上传问题)

    asp.net实现ftp上传代码(解决大文件上传问题) 参考文章: (1)asp.net实现ftp上传代码(解决大文件上传问题) (2)https://www.cnblogs.com/LYunF/ar ...

  6. php怎么上传函数,PHP单文件上传原理及上传函数的封装操作示例

    搜索热词 @H_404_0@本文实例讲述了PHP单文件上传原理及上传函数的封装操作.分享给大家供大家参考,具体如下: @H_404_0@表单: @H_404_0@0.PHP: 无标题文档 请选择您要上 ...

  7. SharePoint 2010 ——自定义上传页面与多文件上传解决方案

    SharePoint 2010 --自定义上传页面与多文件上传解决方案 参考文章: (1)SharePoint 2010 --自定义上传页面与多文件上传解决方案 (2)https://www.cnbl ...

  8. 使用Apache文件上传控件实现文件上传

    本文使用Apache提供的第三方文件上传控件进行文件上传 1.导入第三方commons-fileupload-1.3.2.jar和commons-io-2.5.jar包 2.页面form标签需添加en ...

  9. php 文件上传mime 类型,php文件上传类型(MIME)对照表

    网上有很多php文件上传的类,文件上传处理是php的一个特色(至少手册上是将此作为php特点来展示的,个人认为php在数组方面的优异功能更有特色),学php的人都知道文件上传怎么做,但很多人在编程中却 ...

最新文章

  1. Java使用Lettuce操作redis
  2. 小程序之图片懒加载[完美方案,你不来看看?]
  3. VTK修炼之道8_三维场景基本要素:相机
  4. Linux驱动编程 step-by-step (十一)
  5. LNMP环境添加第三方模块
  6. web.xml 配置 contextConfigLocation
  7. 区分execl与system——应用程序中执行命令
  8. PE接受失败:一场被迫发生的行业革命
  9. 基于RV1126平台imx291分析 --- v4l2_pipeline_pm_use
  10. Arcgis API For Javascript下载与安装
  11. 学习笔记-OS - Exploits
  12. java rnn生成古诗_基于循环神经网络(RNN)的古诗生成器
  13. 以《简单易懂》的语言带你搞懂无监督学习算法【附Python代码详解】机器学习系列之K-Means篇
  14. java对象转excel_Java中excel与对象的互相转换的通用工具类编写与使用(基于apache-poi-ooxml)...
  15. Revit土建软件的功能,【顶部对齐】【墙齐梁板】【快速切换材质】等等
  16. ubuntu20.04 重启黑屏 仅有左上角白色横杠闪烁
  17. 飞塔防火墙之Link Monitor
  18. 罗技K375s重新配置和连接
  19. python安装包下载及安装教程
  20. html-day13渐变动画

热门文章

  1. jupyter 接受参数
  2. gorm一对一 一对多 多对多查询案例
  3. vue v-for指令
  4. JDBC的CRUD操作之PreparedStatement的查询操作
  5. MyCat实战--读写分离/数据分片/mycat集群/haproxy负载均衡
  6. Java包装类API详解
  7. 从 Java 到 Scala(一):面向对象谈起
  8. Oracle中Null与空字符串' '的区别
  9. python现在版本强势英雄_当前版本有哪些强势英雄?
  10. ifconfig命令找不到_Linux基本命令