2011-07-28 107 views
1

我今天從我的發佈服務器向我的QNAP傳輸了一個下載腳本,它基本上使用copy()從URL下載視頻。出於某種原因,我下載的任何視頻都完全是33,378,304字節。我的php.ini文件設置爲3600超時,它沒有什麼區別,其他人有這個問題?PHP複製()最大尺寸問題

當我運行直接使用

# php <script path> 

php.ini中被忽略和完整的文件下載腳本,必須有一條線,我缺少的配置。

任何幫助將不勝感激,謝謝!

的upload_max_filesize設置爲2047M

+1

什麼是你的PHP內存限制設置爲? 32 MB也許? –

+0

33,378,304字節是31mb - 嘗試grep你的php.ini並找到31可能會幫助你。 – hadvig

+0

@hadvig文件中沒有31。 – Lewis

回答

0

這是一個變通,而不是解決問題的辦法,但你嘗試過使用exec("cp $src $dst")system("cp $src $dst")

據我可以看到有沒有限制的copy()命令在PHP中,這使得這是一個奇怪的錯誤。

+0

我使用副本從URL下載,afaik cp不會執行相同的工作。 – Lewis

+0

你可以使用'wget'。 '系統(「wget -O $ dst $ url」)'。你有權訪問服務於該文件的http服務器嗎?你能看到有關轉移的錯誤嗎? –

+0

由於某種原因,wget不適用於此URL。而且我無法查看日誌。 – Lewis

-1

您是否更改過post_max_size值?

-

編輯

一些視頻服務器通過禁止的多個下載比視頻的特定部分(我已經同一個問題,而試圖下載視頻流)保護自己。

作爲一種變通方法,您可以使用此腳本由片下載的視頻片:

function fragmented_download($url, $destination) 
{ 
    $headers = get_headers($url, 1); 
    $downloadsize = $headers["Content-Length"]; 
    for ($filesize = 0 ; $filesize < $downloadsize ; $filesize = filesize($destination)) 
    { 
     exec("wget --continue --output-document='$destination' '$url'"); 
    } 
} 
+0

它被設置爲'post_max_size = 2047 M' – Lewis

+0

好的。你在這個問題中沒有提到它,它通常是一個麻煩來源。 –

+0

沒關係,我一直盯着這個php.ini文件好幾個小時沒有運氣。 – Lewis