无法从$ _POST中检索大型帖子数据

时间:2015-01-09 18:47:49

标签: php linux apache post curl

我有一个奇怪的问题,我正在尝试发布大约1GB的数据,但是当我收到数据时,页面/ api会在没有发布数据的情况下执行。 $_POST为空,但file_get_contents("php://input")不是。我已将我的php内存限制设置为-1最大帖子大小为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 => 
)

2 个答案:

答案 0 :(得分:0)

php.iniphp_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
祝你好运! : - )

答案 1 :(得分:0)

将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_filesizepost_max_sizememory_limit;它是这4种设置的组合。