PHP中对网站上传文件的一些限制和如何修改!

        当前很多的网站或者博客程序都是基于PHP的环境开发设计的,例如大家都熟悉的WordPress和国内著名的织梦CMS,帝国CMS,著名的博客ZBlog等等吧,其实很多的网站或者博客程序都是基于PHP环境程序开发。既然都是PHP环境程序开发,在上传文件的时候,或多或少的存在一些共性的问题,例如同时上传的文件数量,特别是图片数量,上传的文件MB的大小,这些都可以在网站PHP环境配置文件即php.ini中得到设置,进而解决文件上传的一些问题。我们先来看最新版的PHP程序中php.ini的关于上传文件的简单说明:

;;;;;;;;;;;;;;;
; File Uploads ;
;;;;;;;;;;;;;;;;

; Whether to allow HTTP file uploads.
; https://php.net/file-uploads
file_uploads = On

; Temporary directory for HTTP uploaded files (will use system default if not
; specified).
; https://php.net/upload-tmp-dir
;upload_tmp_dir =

; Maximum allowed size for uploaded files.
; https://php.net/upload-max-filesize
upload_max_filesize = 2M

; Maximum number of files that can be uploaded via a single request
max_file_uploads = 20

        这段代码位于php.ini-development文件,也就是被我们修改成为php.ini文件的第838行,里面有两个地方我们可以适当的进行设置修改,第一个地方就是:

upload_max_filesize = 2M

        这句代码掌控的是PHP网站程序单次允许上传附件或者文件或者压缩包的大小,也就是默认的情况下最大允许上传2M大小的文件;大家当然对这个文件设置有点儿不满意,那您尽可能的把数值该大一些就可以。第二处需要修改的地方就是这句代码的下方:

max_file_uploads = 20

        联网了一下,发现、估计、差不多、可能吧,就是掌控单次上传的文件数量,也就是一次上传附件或者文件或者压缩包的数量是20个,这也是为什么有些网站程序在上传附件的时候,选中的文件很多但是真正上传的数量没有多少,大家也可以适当的进行修改。还有一次地方需要修改:

; Maximum size of POST data that PHP will accept.
; Its value may be 0 to disable the limit. It is ignored if POST data reading
; is disabled through enable_post_data_reading.
; https://php.net/post-max-size
post_max_size = 8M

        这句代码在php.ini文件的第701行附近,隶属于

;;;;;;;;;;;;;;;;;
; Data Handling ;
;;;;;;;;;;;;;;;;;

        里面,翻译过来就是数据处理,有些网站翻译成“尽量避免网站处理数据漏洞”,这里面的

post_max_size = 8M

        这行代码的含义其实就是通过表单POST给PHP的所能接收的最大值,包括表单里的所有值,看到这里估计有些站长朋友已经理解了,这个数值的设定,需要比

upload_max_filesize = 2M

        的数值要大,你看默认值就是如此。当然了,这三处的默认数值在理论上我们可以随意的修改,但是实际情况是,需要考虑服务器的内存问题,上传附件或者文件或者图片的时间问题,就需要设置其他的地方例如php.ini的第399行,大家可以查看一下:

;;;;;;;;;;;;;;;;;;;
; Resource Limits ;
;;;;;;;;;;;;;;;;;;;

; Maximum execution time of each script, in seconds
; https://php.net/max-execution-time
; Note: This directive is hardcoded to 0 for the CLI SAPI
max_execution_time = 30

; Maximum amount of time each script may spend parsing request data. It's a good
; idea to limit this time on productions servers in order to eliminate unexpectedly
; long running scripts.
; Note: This directive is hardcoded to -1 for the CLI SAPI
; Default Value: -1 (Unlimited)
; Development Value: 60 (60 seconds)
; Production Value: 60 (60 seconds)
; https://php.net/max-input-time
max_input_time = 60

; Maximum input variable nesting level
; https://php.net/max-input-nesting-level
;max_input_nesting_level = 64

; How many GET/POST/COOKIE input variables may be accepted
;max_input_vars = 1000

; How many multipart body parts (combined input variable and file uploads) may
; be accepted.
; Default Value: -1 (Sum of max_input_vars and max_file_uploads)
;max_multipart_body_parts = 1500

; Maximum amount of memory a script may consume
; https://php.net/memory-limit
memory_limit = 128M

        整理出来就是:

max_execution_time = 30                  ;每个PHP页面运行的最大时间值(秒),默认30秒
max_input_time = 60                      ;每个PHP页面接收数据所需的最大时间,默认60秒
;max_input_nesting_level = 64            ;每个PHP页面从接收请求开始处理数据后的超时时间  
;max_input_vars = 1000                   ; 一个表单(包括get、post、cookie的所有数据)最多提交1000个字段 
;max_multipart_body_parts = 1500         ;可以有多少个多部分正文部分(组合输入变量和文件上传)
memory_limit = 128M                      ;每个PHP页面所吃掉的最大内存,默认128M

        基本上就是告诉大家,修改参数很容易,但是高配置的服务器不好找,所以修改参数的时候还是尽量的符合网站所需,贴合实际的设置才是最好的优化设置。感谢大家来到我的博客,有事儿没事儿常来转转。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值