无法从 $_POST 检索大型 post 数据
cannot retrieve large post data from $_POST
我有一个奇怪的问题,我试图 post 大约 1GB 的数据,但是当我收到数据时 page/api 在没有 post 数据的情况下执行。 $_POST
是空的,但 file_get_contents("php://input")
不是。我已将 php 内存限制设置为 -1 最大 post 大小为 1024M
我能做些什么来解决这个问题吗?这是我的卷曲信息:
Array
(
url => https://myapi.dev/endpoint.json
content_type => text/html
http_code => 200
header_size => 551
request_size => 489
filetime => -1
ssl_verify_result => 0
redirect_count => 1
total_time => 30.591151
namelookup_time => 0.000337
connect_time => 0.002641
pretransfer_time => 0.0056
size_upload => 736249473
size_download => 20
speed_download => 0
speed_upload => 24067400
download_content_length => 20
upload_content_length => 736249473
starttransfer_time => 0.049208
redirect_time => 15.965002
certinfo => Array
(
)
redirect_url =>
)
在您的 php.ini
和 php_info()
中检查这些:
post_max_size - http://php.net/post_max_size
upload_max_filesize - http://php.net/upload_max_filesize
memory_limit - http://php.net/memory_limit
和
也检查这些:
max_execution_time - http://php.net/manual/en/info.configuration.php#ini.max-execution-time
set_time_limit - http://php.net/manual/en/function.set-time-limit.php
祝你好运! :-)
将php memory limit
设置为-1
,将max post size
设置为1024M
可能还不够。
我也同意@Panama Jack的观点;如果 php.ini 中的设置全部失败,apache 也可能是一个因素。您可能需要将两者都考虑在内。但在大多数情况下,这不是问题。这取决于你的配置。
max_execution_time
实际上可能会抛出错误。我建议将您的设置更改为 18000
(即 5 小时),这对于 1GB
.
是可以的
至于 php.ini
设置,我建议将它们设置为略高于您预期的上传值。例如,如果您希望上传 1G 文件,则将设置设置为 1536M (1.5G)
。这适用于 upload_max_filesize
、post_max_size
和 memory_limit
;它是这 4 个设置的组合。
我有一个奇怪的问题,我试图 post 大约 1GB 的数据,但是当我收到数据时 page/api 在没有 post 数据的情况下执行。 $_POST
是空的,但 file_get_contents("php://input")
不是。我已将 php 内存限制设置为 -1 最大 post 大小为 1024M
我能做些什么来解决这个问题吗?这是我的卷曲信息:
Array
(
url => https://myapi.dev/endpoint.json
content_type => text/html
http_code => 200
header_size => 551
request_size => 489
filetime => -1
ssl_verify_result => 0
redirect_count => 1
total_time => 30.591151
namelookup_time => 0.000337
connect_time => 0.002641
pretransfer_time => 0.0056
size_upload => 736249473
size_download => 20
speed_download => 0
speed_upload => 24067400
download_content_length => 20
upload_content_length => 736249473
starttransfer_time => 0.049208
redirect_time => 15.965002
certinfo => Array
(
)
redirect_url =>
)
在您的 php.ini
和 php_info()
中检查这些:
post_max_size - http://php.net/post_max_size
upload_max_filesize - http://php.net/upload_max_filesize
memory_limit - http://php.net/memory_limit
和
也检查这些:
max_execution_time - http://php.net/manual/en/info.configuration.php#ini.max-execution-time
set_time_limit - http://php.net/manual/en/function.set-time-limit.php
祝你好运! :-)
将php memory limit
设置为-1
,将max post size
设置为1024M
可能还不够。
我也同意@Panama Jack的观点;如果 php.ini 中的设置全部失败,apache 也可能是一个因素。您可能需要将两者都考虑在内。但在大多数情况下,这不是问题。这取决于你的配置。
max_execution_time
实际上可能会抛出错误。我建议将您的设置更改为 18000
(即 5 小时),这对于 1GB
.
至于 php.ini
设置,我建议将它们设置为略高于您预期的上传值。例如,如果您希望上传 1G 文件,则将设置设置为 1536M (1.5G)
。这适用于 upload_max_filesize
、post_max_size
和 memory_limit
;它是这 4 个设置的组合。