PHP 处理web上传文件的流程

详细描述PHP处理web上传文件的流程,如何限制上传文件的大小不能超过某个数值?

1.流程:首先用户在浏览器端选择上传的文件,提交后,通过post方式上传到服务器由php引擎处理判断文件是否能够上传到php配置文件中指定的临时目录,之后获取文件后缀名判断文件是否是允许上传的文件格式,如果没问题,则按照随机数+时间的方式生成文件的名字+后缀。最后将文件从临时目录转移至Apache服务器目录。
2.在php配置文件中 有一个upload_max_filesize 设置其值就可以限制上传文件大小
可以在php.ini文件中的upload_max_filesize = 某值 设置上传文件大小,同时也可以在表单中$_FILES['name']['size']限制文件大小,以及服务器配置中也要设置上传文件的大小和上传时间。
3.同时如果是nginx服务器,也要设置其上传文件的大小限制, client_max_body_size 10m; 如果需要经过代理服务器,则代理服务器也同样需要设置上传大小配置;

在PHP中,当浏览器客户端提交过来的表单请求中包含上传的文件时,PHP会将上传的文件先暂时存放在临时目录中(在Windows操作系统中,默认的临时目录一般为C:/Windows/Temp),然后将上传文件的相关信息存放在超全局变量$_FILES中。因此,我们只需要通过$_FILES数组获取上传的文件信息,然后对其进行相应的处理操作即可。

1.file_uploads
设为On,允许通过HTTP上传文件
2.upload_tmp_dir
文件上传至服务器时用于临时存储的目录,如果没指定,系统会使用默认的临时文件夹(我的机器是/tmp)。
3.upload_max_filesize
允许上传文件大小的最大值,默认为2M。
4.post_max_size
php可接收的post数据的最大值(包括表单里的所有值的总合),默认为8M。
5.memory_limit
每个php所占的最大内存数,这个值要大于允许上传的文件大小。
6.max_execution_time
每个php运行的最长时间(秒),默认30秒。
7.max_input_time
php解析POST/GET数据的最长时间(秒),默认60秒。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 上传模块配置样例: # 上传大小限制(包括所有内容) client_max_body_size 100m; # 上...
    SkTj阅读 13,169评论 0 3
  • php.ini设置,上传大文件: post_max_size = 128Mupload_max_filesize ...
    bycall阅读 6,829评论 3 64
  • 文件上传漏洞 常见的漏洞分类服务器配置不当导致文件上传开源编辑器存在上传漏洞本地文件上传限制可以上传被绕过服务器端...
    二潘阅读 17,265评论 2 3
  • Php:脚本语言,网站建设,服务器端运行 PHP定义:一种服务器端的HTML脚本/编程语言,是一种简单的、面向对象...
    廖马儿阅读 2,185评论 2 38
  • “万两黄金容易得,知心一个也难求。”我很庆幸,在为柴米油盐奔波的路上,有一个知己一直与我同行。 Z是我儿时的留恋 ...
    FengFeng羽竹平阅读 3,118评论 46 151