post数据大小php post传参大小

php get传值最大是多少

各种web开发语言中,各个页面之间基本都会进行数据的传递,web开发里面比较常用的数据传递方式有get

post,一直以来我都只知道get传递的数据量要比post传递的数据量要少,所以传递大数据量还是要用post,但是 get post

这两种方式最大能传递多少数据呢?一直没搞清楚。

今天由于工作的需要,还必须得把这个问题搞明白一下了,下面就说说GET与POST传递数据的最大长度能够达到多少吧。

get

是通过URL提交数据,因此GET可提交的数据量就跟URL所能达到的最大长度有直接关系。很多文章都说GET方式提交的数据最多只能是1024字节,而

实际上,URL不存在参数上限的问题,HTTP协议规范也没有对URL长度进行限制。这个限制是特定的浏览器及服务器对它的限制。IE对URL长度的限制

是2083字节(2K+35字节)。对于其他浏览器,如FireFox,Netscape等,则没有长度限制,这个时候其限制取决于服务器的操作系统。即

如果url太长,服务器可能会因为安全方面的设置从而拒绝请求或者发生不完整的数据请求。

post

理论上讲是没有大小限制的,HTTP协议规范也没有进行大小限制,但实际上post所能传递的数据量大小取决于服务器的设置和内存大小。因为我们一般

post的数据量很少超过MB的,所以我们很少能感觉的到post的数据量限制,但实际中如果你上传文件的过程中可能会发现这样一个问题,即上传个头比较

大的文件到服务器时候,可能上传不上去,以php语言来说,查原因的时候你也许会看到有说PHP上传文件涉及到的参数PHP默认的上传有限定,一般这个值是2MB,更改这个值需要更改php.conf的post_max_size这个值。这就很明白的说明了这个问题了。

如何设置php上传文件大小限制

修改PHP上传文件大小限制的方法

1. 一般的文件上传,除非文件很小.就像一个5M的文件,很可能要超过一分钟才能上传完.

但在php中,默认的该页最久执行时间为 30 秒.就是说超过30秒,该脚本就停止执行.

这就导致出现 无法打开网页的情况.这时我们可以修改 max_execution_time

在php.ini里查找

max_execution_time

默认是30秒.改为

max_execution_time = 0

0表示没有限制

2. 修改 post_max_size 设定 POST 数据所允许的最大大小。此设定也影响到文件上传。

php默认的post_max_size 为2M.如果 POST 数据尺寸大于 post_max_size $_POST 和 $_FILES superglobals 便会为空.

查找 post_max_size .改为

post_max_size = 150M

3. 很多人都会改了第二步.但上传文件时最大仍然为 8M.

为什么呢.我们还要改一个参数upload_max_filesize 表示所上传的文件的最大大小。

查找upload_max_filesize,默认为8M改为

upload_max_filesize = 100M

另外要说明的是,post_max_size 大于 upload_max_filesize 为佳.

http post参数值字符过长,PHP服务端接收数据为空

Windows 环境下的修改方法

第一步:修改在php下POST文件大小的限制

1.用编辑器打开php.ini

找到:max_execution_time =30 ,这个是每个脚本运行的最长时间,单位秒,修改为:

max_execution_time = 150

找到:max_input_time = 60,这是每个脚本可以消耗的时间,单位也是秒,修改为:

max_input_time = 300

找到:memory_limit = 128M,这个是脚本运行最大消耗的内存,根据你的需求更改数值,这里修改为:

memory_limit = 256M

找到:post_max_size = 8M,表单提交最大数据为8M,此项不是限制上传单个文件的大小,而是针对整个表单的提交数据进行限制的。限制范围包括表单提交的所有内容.例如:发表贴子时,贴子标题,内容,附件等…这里修改为:

post_max_size = 20M

找到:upload_max_filesize = 2M ,上载文件的最大许可大小 ,修改为:

upload_max_filesize = 10M

第二步: Apache环境中的档案上传大小控制

修改位于Apahce目录下的httpd.conf

添加下面内容

LimitRequestBody10485760

即10M=10*1024*1024,有的文章中提到应改为 600000000

重新启动apache,就可以在设置里看到你要的大小

Linux 环境下的修改方法

vim /etc/php.ini

找到 File Uploadsh区域修改以下几个参数: file_uploads = on; 是否允许通过HTTP上传文件的开关。默认为ON即是开 upload_tmp_dir; 文件上传至服务器上存储临时文件的地方,如果没指定就会用系统默认的临时文件夹(moodle可以不改)

upload_max_filesize = 8m ; 允许上传文件大小的最大值.

找到 Data Handling区域,修改 post_max_size = 8m; 指通过表单POST给PHP的所能接收的最大值,包括表单里的所有值。默认为8M

设上述四个参数后,上传小于8M的文件一般不成问题。但如果上传大于8M的文件,只还得设置以下参数:

在Resource Limits 区域: max_execution_time = 600; 每个PHP页面运行的最大时间值(秒),默认30秒 max_input_time = 600; 每个PHP页面接收数据所需的最大时间,默认60秒 memory_limit = 8m; 每个PHP页面所吃掉的最大内存,默认8M