ホームページ >バックエンド開発 >PHPチュートリアル >PHPのダウンロード制限
PHP アップロード制限
php はアップロード ファイル サイズを変更します (max_execution_time post_max_size)
一部の友人は、フォーラムを含む自分の Web サイトのバックエンドを通じていくつかのファイルをアップロードしたいと考えています。PHP は通常 2m または 8m です (以下ではデフォルトで 2m とします)。 次に、アップロードされたファイルのサイズを変更する方法について説明します。
?
1. まず、ファイルのアップロードの制限を変更します
一般的なファイルのアップロード。5M ファイルのような非常に小さいファイルでない限り、アップロードには 1 分以上かかる可能性があります。
しかし、PHP では、このページのデフォルトの最大実行時間は 30 秒です。つまり、30 秒を超えると、スクリプトは実行を停止します。
これにより、Web ページを開けなくなりますが、現時点では max_execution_timeを変更できます。
php.ini で検索最大実行時間
デフォルトは 30 秒です。
に変更します。
最大実行時間 = 00 は制限なしを意味します
もう 1 つの方法は、php プログラムに
を追加することです
set_time_limit();ページの最大実行時間を設定します。
set_time_limit(0);//0 は制限なしを意味します
2. 次に、データパケットの最大制限を変更します
post_max_size を変更して、POST データに許可される最大サイズを設定します。この設定はファイルのアップロードにも影響します。
PHP のデフォルトの post_max_size は 2M です。POST データ サイズが post_max_size より大きい場合、$_POST および $_FILES スーパーグローバルは空になります。
post_max_size を探して
に変更します。
post_max_size = 150M3. アップロードするファイルの上限を変更することをお勧めします
多くの人は 2 番目のステップを変更しますが、ファイルをアップロードするときの最大サイズは依然として 2M です。
アップロードされるファイルの最大サイズを示すために、パラメーター Upload_max_filesize も変更する必要があるのはなぜでしょうか。
upload_max_filesize を探します。デフォルトは 8M で、それを
に変更します。
アップロード最大ファイルサイズ = 100Mもう 1 つ注意すべき点は、post_max_size の方が Upload_max_filesize よりも優れているということです
......
?
?
関連パラメータの説明:
file_uploads = on ; HTTP 経由でのファイルのアップロードを許可するかどうかを切り替えます。デフォルトはオンです
upload_tmp_dir; 指定しない場合、ファイルは一時ファイルが保存されるサーバーにアップロードされます。
upload_max_filesize = 2m; Wangwen ビジネス、つまり、アップロードできるファイル サイズの最大値。デフォルトは 2M
post_max_size = 8m; は、フォーム内のすべての値を含む、フォーム経由で PHP への POST を通じて受信できる最大値を指します。デフォルトは 8M
max_execution_time = 30; 各 PHP ページの実行時間の最大値 (秒)、デフォルトは 30 秒です
max_input_time = 60; 各 PHP ページがデータを受信するのに必要な最大時間、デフォルトは 60 秒です
memory_limit = 128m; 各 PHP ページによって消費される最大メモリ、デフォルトは 128M です。小さすぎると感じる場合は、大きく設定できます。 128あれば十分です。
最大実行時間 = 600
最大入力時間 = 600
upload_max_filesize = 32m
post_max_size = 32m
上記のパラメータを変更すると、ネットワークで許可されている通常の状況で大きなファイルをアップロードできます
方法 2、.htaccess ファイルを使用する
この方法は php.ini を直接変更する必要がなく、仮想ホストに適しています。
Apache サポート .htaccess を構成する
//見つかりました
オプション FollowSymLinks
AllowOverride なし
ディレクトリ>
//
に変更されました
オプション FollowSymLinks
すべて上書きを許可
ディレクトリ>
//以上です
ディレクトリに新しい .htaccess ファイルを作成します。Windows ではデフォルトでこれを許可していませんが、Dreamweaver のファイル管理下では新しいファイルを作成できません。
.htaccess に
を書き込みますphp_value post_max_size 12m
php_value Upload_max_filesize 12m
php_value max_execution_time 120
php_value max_input_time 240
大丈夫です
追加説明:
ini_set("post_max_size", "80M"); を使用する方法は機能しません。
post_max_sizeの変更可能範囲はPHP_INI_PERDIRです。
PHP_INI_PERDIR は、php.ini、httpd.conf、または .htaccess ファイル内でのみ変更できるドメイン内ディレクティブであるため、機能しません。
?
?
指定されたコマンドの値を設定します。 PHP_INI_ALL および PHP_INI_PERDIR ディレクティブでのみ使用できます。最後に設定した値をクリアするには、値を なし に設定します。
?
?
注: php_value を使用してブール値を設定しないでください。代わりに php_flag (以下を参照) を使用する必要があります。
?
?
?
ブール値の型を設定するために使用される構成ディレクティブ。 PHP_INI_ALL および PHP_INI_PERDIR ディレクティブでのみ使用できます。
?
指定されたコマンドの値を設定します。 .htaccess ファイルでは使用できません。 php_admin_value に設定された値は、.htaccess または virtualhost のディレクティブによってオーバーライドできません。最後に設定した値をクリアするには、値を なし に設定します。
?
ブール値の型を設定するために使用される構成ディレクティブ。 .htaccess ファイルでは使用できません。 php_admin_flag に設定された値は、.htaccess または virtualhost のディレクティブによってオーバーライドできません。
................................................................ .
?
PHP によるファイルのアップロードに関連するパラメータ:
いくつかのパラメータ調整:
0: ファイルのアップロード時にファイルが保存される一時ディレクトリ。 PHP プロセス所有者ユーザーが書き込み可能なディレクトリである必要があります。指定しない場合、PHP はシステムのデフォルト値を使用します。
php.ini ファイル内の Upload_tmp_dir は、PHP によってアップロードされたファイルが配置される一時ディレクトリを記述するために使用されます。
ファイルをアップロードするには、サーバーが一時ファイルを閉じていないこと、およびフォルダーに対する書き込み権限があることを確認する必要があります
1: max_execution_time
変数
max_execution_time は、PHP がスクリプトを強制終了するまで待機する時間を設定します。この時間は秒単位で測定されます。スクリプトが無限ループに入ったとき
この変数は非常に便利です。ただし、完了までに時間がかかる正当なアクティビティ (大きなファイルのアップロードなど) がある場合、この機能により操作が失敗する可能性もあります。このような場合、この変数の値を増やすことを考慮する必要があります。
重要なプロセスの実行中に PHP がスクリプトをシャットダウンしないようにするために追加されました。
最大実行時間 = 90
2: file_uploads = オン
3: アップロード最大ファイルサイズ = 2M
4: post_max_size
フォーム送信に関連する変数は post_max_size で、POST メソッドを使用して一度制御されます。 フォーム送信時に PHP が受信できるデータの最大量。デフォルトの 8 を変更する必要があるかもしれません。 MBはさらに大きく変化しました。代わりに、より現実的な値に適切に減らす必要があります。ただし、PHP ファイルのアップロード機能を使用する場合は、この値を Upload_max_filesize よりも大きくする必要があります。 大きくなってください。
post_max_size = 8M
5: max_input_time
この変数は、POST、GET、PUT によるデータの受信時間を秒単位で制限できます。アプリケーションが低速リンクで実行されている場合は、データの受信に必要な追加時間に対応するために、この値を増やす必要がある場合があります。
最大入力時間 = 90
6: メモリ制限
メモリ制限 = 8M
スクリプトの実行によってシステムで使用可能な大量のメモリが使用されるのを避けるために、PHP ではメモリ使用量の制限を定義できます。単一のスクリプトが使用できる最大メモリ容量を指定するには、memory_limit 変数を使用します
変数memory_limitの値は、post_max_sizeの値より適切に大きくなければなりません
PHP で大きなファイルをアップロードする方法:
簡単な構成例を参照できます:
1: php.ini を開き、まず
を見つけます。file_uploads = on ; HTTP 経由でのファイルのアップロードを許可するかどうかを切り替えます。デフォルトはオンです
upload_tmp_dir; ファイルは、一時ファイルが保存されているサーバーにアップロードされます。
upload_max_filesize = 8m; Wangwen ビジネス、つまりアップロードできるファイル サイズの最大値。デフォルトは 2M
post_max_size = 8m; は、フォーム内のすべての値を含む、フォーム経由で PHP への POST を通じて受信できる最大値を指します。デフォルトは 8M
通常、上記 4 つのパラメータを設定した後、ネットワークが正常である限り、8M 以下のファイルをアップロードしても問題ありません。
ただし、8M を超える大きなファイルをアップロードする場合は、上記の 4 つの項目を設定するだけで確実に機能します。実際にネットワークのアップロード速度が 100M/S でない限り、次のパラメータに注意する必要があります
max_execution_time = 600; 各 PHP ページの実行時間の最大値 (秒)、デフォルトは 30 秒
max_input_time = 600; 各 PHP ページがデータを受信するのに必要な最大時間、デフォルトは 60 秒
memory_limit = 8m; 各 PHP ページが消費する最大メモリ、デフォルトは 8M
上記のパラメータを変更すると、ネットワークで許可されている通常の状況で大きなファイルをアップロードできます