ホームページ > バックエンド開発 > PHPチュートリアル > PHPアップロードファイルサイズ制限の問題

PHPアップロードファイルサイズ制限の問題

WBOY
リリース: 2016-07-25 08:54:49
オリジナル
890 人が閲覧しました
PHPのファイルサイズ制限の問題を解決するにはどうすればよいですか?主な目的は、構成ファイル php.ini の内容を変更して、PHP アップロード ファイルのサイズ制限を突破することです。

PHP 4.2.0 以降、PHP は対応するエラー コードをファイル情報配列とともに返します。 このコードは、ファイルのアップロード時に生成されるファイル配列の ['error'] フィールド、つまり $_FILES['userfile']['error'] にあります。 UPLOAD_ERR_INI_SIZE 値: 1; アップロードされたファイルは、php.ini の Upload_max_filesize オプションの制限を超えています。 UPLOAD_ERR_FORM_SIZE 値: 2; アップロードされたファイルのサイズが、HTML フォームの MAX_FILE_SIZE オプションで指定された値を超えています。

メモ

MAX_FILE_SIZE に設定する値は、ini 設定の Upload_max_filesize オプションで設定した値より大きくすることはできません。デフォルト値は 2M バイトです。

メモリ制限設定が有効になっている場合は、memory_limit をより大きく設定する必要がある場合があります。memory_limit 設定が十分な大きさであることを確認してください。

max_execution_time 設定が小さすぎる場合、スクリプトの実行にこの設定よりも時間がかかることがあります。したがって、max_execution_time が十分な大きさであることも確認してください。

注: max_execution_time は、スクリプト自体の実行時間にのみ影響します。関数 system() によるシステムへの呼び出し、sleep() 関数の使用、データベース クエリ、ファイルのアップロードなど、スクリプトの実行以外で費やされるその他の時間は、スクリプトが実行できる最大時間の計算には含まれません。 。

post_max_size で設定した値が小さすぎる場合、それより大きなファイルはアップロードされません。したがって、post_max_size の値が十分に大きいことを確認してください。

操作するファイルを検証しないと、ユーザーが他のディレクトリにある機密情報にアクセスできる可能性があります。

CERN httpd は、クライアントから取得したコンテンツ タイプの MIME ヘッダーの最初のスペース以降をすべて破棄するようであることに注意してください。これに基づいて、CERN httpd はファイル アップロード機能をサポートしていません。

ファイル パスを表す方法は多数あるため、さまざまな外国語のファイル名 (特にスペースを含むファイル名) が正しく処理されるかどうかは保証できません。

PHPマニュアルより抜粋

実際、これは簡単に回避できます。最初に JS で確認した方が安全です。

ファイルアップロードの制限

システム:

redhat 9+Apache 2.0 フィルター+php 4.2.2

何が起こっているのかわかりませんが、512kを超えるファイルをアップロードすると、サーバーが見つからないと表示されます。さらに、アップロードプロセスを経なければ、サーバーを直接見つけることはできません。

Apache ログ、アップロード時にエラー メッセージが見つかりました: [水曜日 5 月 12 日 17:05:10 2004] [エラー] [クライアント 10.133.9.4] 要求されたコンテンツの長さ 2025891 は、設定された制限の 524288 を超えています

アップロードされたファイルに対する制限であるはずですが、この設定は httpd.conf に見つかりません。

php.ini があり、8M に設定されている可能性があります。

さらに、error_log に原因がわからないエラー メッセージがいくつかあります。 [Wed May 12 17:04:58 2004] [通知] ダイジェスト: ダイジェスト認証用のシークレットを生成しています ... [2004 年 5 月 12 日水曜日 17:04:58] [お知らせ] ダイジェスト: 終了 [2004 年 5 月 12 日水曜日 17:04:59] [情報] (32)壊れたパイプ: core_output_filter: ネットワークにデータを書き込んでいます [2004 年 5 月 12 日水曜日 17:04:59] [通知] Apache/2.0.40 (Red Hat Linux) が設定されました -- 通常の操作を再開します

; アップロードされるファイルの最大許容サイズ。 アップロード最大ファイルサイズ = 2M

通常、PHP アップロード制限は php.ini で設定されます。変更を有効にするには再起動する必要があることに注意してください。 元の投稿は cnTeacher によって、2004 年 5 月 12 日 05:43 PM に投稿されました。 524288 この設定は /etc/httpd/conf.d/ の下の php.conf にあります。 php.ini のタイムアウト時間 30 秒は短すぎます。これを 300 秒などの長い時間に変更します。

これで、アップロードファイルのサイズ制限はphpで解決されました。


ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート