1

管理者が HD 品質のムービーをアップロードする必要がある Web サイトがあります。動画のサイズはほぼ 2GB+

PHP または Apache は 2GB 以上のファイルのアップロードをサポートしますか?

これを行う最善の方法は何ですか?ajax アップロード、swf アップロード (uploadify)、または通常のフォーム送信アップロードを使用する必要がありますか?

私はPHP 5.4を使用しています

4

3 に答える 3

1

最大アップロード サイズを制御する 2 つの PHP 構成オプション:upload_max_filesizepost_max_size. どちらも、たとえば、10 メガバイトのファイル サイズの場合は「10M」に設定できます。

ただし、アップロードが完了するまでの時間も考慮する必要があります。通常、PHP スクリプトは 30 秒後にタイムアウトしますが、正常なブロードバンド接続で 10MB のファイルをアップロードするには、少なくとも 3 分かかります (アップロード速度は通常、ダウンロード速度よりも 5 倍遅いことに注意してください)。さらに、アップロードされた画像を操作または保存すると、スクリプトのタイムアウトが発生する場合もあります。したがって、PHP のmax_input_timemax_execution_time300 (秒単位で指定された 5 分) のような値に設定する必要があります。

これらのオプションは、すべてのアプリケーションに適用されるように、サーバーの php.ini 構成ファイルで設定できます。または、Apache を使用している場合は、アプリケーションの .htaccess ファイルで設定を構成できます。

php_value upload_max_filesize 10M
php_value post_max_size 10M
php_value max_input_time 300
php_value max_execution_time 300

最後に、PHP アプリケーション内で制約を定義できます。

ini_set('upload_max_filesize', '10M');
ini_set('post_max_size', '10M');
ini_set('max_input_time', 300);
ini_set('max_execution_time', 300);

PHP には関数も用意されているので、直接set_time_limit()設定する必要はありません。max_execution_time

アプリケーションが大量のアップロードを予期している場合は、実行時間を延長し、ファイル サイズを大きくできるため、PHP コードでオプションを設定する方が実用的である可能性があります。他のフォームは、デフォルトの 30 秒のタイムアウトと 2MB の制限に戻ります。

于 2013-03-12T12:57:37.120 に答える
0

ファイル >=2GB の場合、一部のブラウザーの制限に達する可能性があります。
さらに、2GB のアップロードには時間がかかる場合があります (Web サーバーのタイムアウトを超える場合があります)。
接続が切断された場合は、ファイル全体を再度アップロードする必要があります。

于 2013-03-12T13:00:28.107 に答える
0

php.ini ファイルの post_max_size および upload_max_size ディレクティブと同様に、Apache の conf で最大ファイル アップロード サイズを増やす必要がある可能性があります。

于 2013-03-12T12:55:27.903 に答える