2017-02-16 33 views
0

我試圖在Windows上用PHP設置Apache2 webserver。我正在使用EasyPHP軟件包來安裝所需的服務器。一切正常,只要我想承載更大的文件下載。我的意思是34M。當我嘗試下載這樣的文件時,請求超時。如果我嘗試使用相同的文件名下載一個較小的文件,它可以工作。我不知道是什麼原因造成的。我試圖直接訪問服務器上的文件,但如果我嘗試使用某些PHP代碼進行讀取,也會失敗。 我在httpd.conf中將LimitRequestBody設置爲0,我無法找到任何可能對此產生影響的選項。Windows上的Apache2無法下載大文件(> 34M)

編輯:沒有使用PHP時下載失敗,我試圖用直接鏈接下載文件。所以我不認爲這是與PHP相關的問題,而是與Apache有關。

任何幫助,將不勝感激。

回答

0

我找到了答案這個位置: https://serverfault.com/questions/115906/is-there-some-limit-on-a-size-of-a-file-when-force-downloading-it-with-php-on-ap

內存的限制並沒有幫助,但是使用readfile_chunked功能工作!在這裏也謝謝你!

<?php 
function readfile_chunked ($filename) { 
    $chunksize = 1*(1024*1024); // how many bytes per chunk 
    $buffer = ''; 
    $handle = fopen($filename, 'rb'); 
    if ($handle === false) { 
    return false; 
    } 
    while (!feof($handle)) { 
    $buffer = fread($handle, $chunksize); 
    print $buffer; 
    } 
    return fclose($handle); 
} 
?> 
0

我想讚揚這一點,但它已被問及答覆了一堆。 How to increase maximum execution time in php

標記爲已回答如果您發現該答案有用。

+0

謝謝,但它不起作用。不管我是否設置了一個很高的值到max_execution_time,我總是無法下載文件。這並不是下載被中斷的原因,但是如果我嘗試下載大於34M的文件,我會在瀏覽器中看到「連接已重置」消息,我根本無法開始下載。 –

+0

我也擁有在「重複帖子」中描述的所有內容,但仍有此問題。 –