1

今日、ダウンロード スクリプトをパブリッシュ サーバーから QNAP に転送しました。これは基本的に copy() を使用して URL からビデオをダウンロードします。何らかの理由で、ダウンロードしたビデオは正確に 33,378,304 バイトで出力されます。私の php.ini ファイルは 3600 タイムアウトに設定されていますが、少しの違いはありません。他の誰かがこの問題を抱えていましたか?

を使用してスクリプトを直接実行すると

# php <script path>

php.ini は無視され、完全なファイルがダウンロードされます。設定に欠けている行があるはずです。

どんな助けでも大歓迎です、ありがとう!

upload_max_filesize は 2047M に設定されています

4

2 に答える 2

0

これは問題の解決策ではなく回避策ですが、exec("cp $src $dst")またはsystem("cp $src $dst")

私が見る限りcopy()、PHP のコマンドには制限がないため、これは奇妙なバグです。

于 2011-07-28T11:13:06.090 に答える
-1

post_max_size値も変更しましたか?

-

編集

一部のビデオサーバーは、ビデオの特定の部分を超えるダウンロードを禁止することで自分自身を保護します (ビデオストリームをダウンロードしようとしているときに、すでに同じ問題が発生しています)。

回避策として、このスクリプトを使用してビデオを 1 つずつダウンロードできます。

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'");
    }
}
于 2011-07-28T11:20:17.477 に答える