2015-01-09 46 views
1

我有一個奇怪的問題,我試圖發佈大約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 => 
) 
+0

你在用什麼網頁服務器? – geggleto 2015-01-09 18:49:59

+0

@LuckyBurger我正在使用apache – user962449 2015-01-09 18:54:02

+0

什麼版本的php? – geggleto 2015-01-09 18:54:50

回答

0

將php memory limit設置爲-1並且將max post size設置爲1024M可能不夠。

我也同意@巴拿馬傑克;如果在php.ini中設置都失敗,apache也可能是一個因素。你可能不得不考慮兩者。但在大多數情況下,這不是問題。這取決於你的配置。

max_execution_time實際上可能會拋出錯誤。我建議將您的設置更改爲18000(這是5小時),這對1GB是正確的。

php.ini設置而言,我建議將它們設置得稍微高於您預期上傳的設置。例如,如果您希望上傳1G文件,請將設置設置爲1536M (1.5G)。這適用於upload_max_filesize,post_max_sizememory_limit;它是這4種設置的組合。

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 

好運! :-)