当前位置:Gxlcms > PHP教程 > php上传文件大小限制的问题

php上传文件大小限制的问题

时间:2021-07-01 10:21:17 帮助过:20人阅读

在php中上专文件大小限制的问题如何解决呢?主要是修改配置文件php.ini中的内容,来突破php上传文件大小的限制。

从 PHP 4.2.0 开始,PHP 将随文件信息数组一起返回一个对应的错误代码。 该代码可以在文件上传时生成的文件数组中的 ['error'] 字段中被找到,也就是 $_FILES['userfile']['error']。 UPLOAD_ERR_INI_SIZE 值:1; 上传的文件超过了 php.ini 中 upload_max_filesize 选项限制的值。 UPLOAD_ERR_FORM_SIZE 值:2; 上传文件的大小超过了 HTML 表单中 MAX_FILE_SIZE 选项指定的值。

注意事项

对 MAX_FILE_SIZE 设置的值,不能大于 ini 设置中 upload_max_filesize 选项设置的值。其默认值为 2M 字节。

如果内存限制设置被激活,您可能需要将 memory_limit 设置的更大些,请确认 memory_limit 的设置足够的大。

如果 max_execution_time 设置的值太小,脚本运行的时间可能会超过该设置。因此,也请保证 max_execution_time 足够的大。

注: max_execution_time 仅仅只影响脚本本身运行地时间。任何其它花费在脚本运行之外的时间,诸如用函数 system() 对系统的调用、sleep() 函数的使用、数据库查询、文件上传等,在计算脚本运行的最大时间时都不包括在内。

如果 post_max_size 设置的值太小,则较大的文件会无法被上传。因此,请保证 post_max_size 的值足够的大。

不使您操作的文件有效化,可能意味着用户能够访问其它目录下的敏感信息。

请注意 CERN httpd 似乎会丢弃它从客户端获得的 content-type mime 头信息中第一个空格后所有的内容,基于这一点,CERN httpd 不支持文件上传特性。

鉴于文件路径的表示方法有很多种,我们无法确保用使用各种外语的文件名(尤其是包含空格的)能够被正确的处理。

摘自PHP手册

其实这个东西很容易绕过的,先用JS确认一下比较保险

关于上传文件的限制

系统:

redhat 9+Apache 2.0 Filter+php 4.2.2

不知道怎么回事,上传大于512k的文件的时候就会显示找不到服务器。而且是没有经过上传过程,直接就找不到服务器了。

apache日志,发现上传时,错误信息: [Wed May 12 17:05:10 2004] [error] [client 10.133.9.4] Requested content-length of 2025891 is larger than the configured limit of 524288

应当是对上传文件的限制吧,可是在httpd.conf 里面找不到这个设置。

php.ini 里面到是有,可以都已经设置成 8M 了。

另外error_log 里面还有些错误信息不知道是什么原因造成的 [Wed May 12 17:04:58 2004] [notice] Digest: generating secret for digest authentication ... [Wed May 12 17:04:58 2004] [notice] Digest: done [Wed May 12 17:04:59 2004] [info] (32)Broken pipe: core_output_filter: writing data to the network [Wed May 12 17:04:59 2004] [notice] Apache/2.0.40 (Red Hat Linux) configured -- resuming normal operations

; Maximum allowed size for uploaded files. upload_max_filesize = 2M

一般PHP上传的限制设置在php.ini里面了,注意更改后要重新启动才会生效! Originally posted by cnteacher at 2004-5-12 05:43 PM: 524288 这个设置在另外一个文件里面! /etc/httpd/conf.d/ 下的php.conf php.ini里超时时间30秒太短了,改长点,比如300秒。

就是这些了,在php中解决了上传文件大小限制。

人气教程排行