大きなファイルのアップロードは常に失敗するのに、小さなファイルのアップロードには問題がないのはなぜですか。 PHP の大きなファイルのアップロードが失敗する理由と解決策は次のとおりです。
ケース 1: ファイルのアップロード時にファイルが保存される一時ディレクトリが開いており、PHP プロセス所有者が書き込み可能なディレクトリである必要があります。ユーザー。指定しない場合、PHP はシステムのデフォルトを使用します。
php.ini ファイルの Upload_tmp_dir は、PHP によってアップロードされたファイルが配置される一時ディレクトリを記述するために使用されます。ファイルをアップロードする場合は、サーバーが一時ファイルを閉じていないことを確認する必要があります。フォルダーへの書き込み権限。
ケース 2: max_execution_time の値は十分に大きい必要があります。変数 max_execution_time は、PHP がスクリプトを強制終了する前にスクリプトの完了を待機する時間を秒単位で設定します。この変数は、スクリプトが無限ループに入った場合に役立ちます。ただし、完了までに時間がかかる正当なアクティビティ (大きなファイルのアップロードなど) がある場合、この機能により操作が失敗する可能性もあります。このような場合、スクリプトがいくつかの重要なプロセスを実行しているときに PHP がスクリプトをシャットダウンしないように、この変数の値を増やすことを検討する必要があります (90 秒 (max_execution_time = 90) に設定するなど)。
関連する推奨事項: 「php 入門チュートリアル 」
注: php 関数には set_time_limit 関数もあります。これは、上記の設定と同じ効果があります。この 2 つの違いは、上記は php.ini ファイルに設定されるのに対し、set_time_limit は php ファイルに記述されることです。したがって、このページで set_time_limit を使用して、プログラムの最大実行時間を設定することもできます。たとえば、制限なし: set_time_limit(0);
3 番目のケース: file_uploads = On。デフォルト値は on です。 HTTP ファイルのアップロードでは、このオプションを OFF に設定することはできません。
ケース 4: Upload_max_filesize = 2M ファイルアップロードの最大サイズを設定します。php.ini 設定ファイルのデフォルトのファイルアップロードサイズは 2M です。PHP 初心者がよく犯す間違いは、ファイルの作成です。関数をアップロードするときでは、アップロードされるファイルの最大サイズ、つまりアップロードが許可されるファイルの最大値をフォーム領域に設定し、アップロードされるファイルのサイズを指定する max_file_size (隠し値フィールド) の値を設定します。一般に、他のユーザーはこの値をバイパスできるため、安全のために、ファイルのアップロードのサイズを設定するには、php.ini 設定ファイルの Upload_max_filesize オプションを設定するのが最善です。デフォルトの Upload_max_filesize = 2M、つまり、ファイルのアップロード サイズは 2M です。20M など、8M を超えるファイルをアップロードする場合は、upload_max_filesize = 20M を設定する必要があります。
シナリオ 5: post_max_size この値も十分な大きさである必要があります。この変数はフォーム送信に関連する変数でもあり、クライアントが POST メソッドを通じてフォームを送信するときに PHP プログラムが受信できるデータの最大量を制限します。一般に、この値は、upload_max_filesize よりもわずかに大きく設定できます。たとえば、20MB のファイルをアップロードする場合、この値は 21MB に設定できます。
ケース 6: max_input_time この変数は、POST、GET、および PUT によるデータの受信時間を秒単位で制限できます。ネットワークが遅い環境でアプリケーションが実行されている場合は、この値を増やしてデータの受信に必要な時間を増やす必要があります。たとえば、この値を 90 秒に設定します。
max_input_time = 90
ケース 7:memory_limit も十分な大きさでなければなりませんスクリプトの実行によってシステムで利用可能な大量のメモリが使用されることを避けるために、PHP ではメモリ使用量の制限を定義できます。単一のスクリプトが使用できる最大メモリ容量を指定するには、memory_limit 変数を使用します。変数memory_limitの値は、post_max_sizeの値より適切に大きくする必要があります。
シナリオ 8: さらに、ホストが nginx オペレーティング システムである場合、上記の操作が失敗した場合は、nginx 構成ファイルに client_max_body_size 20m; を追加することを忘れないでください。この文は、許可されるアップロードの最大値が 20MB であることを意味します。 、あなた自身の状況に応じて。 nginx 構成ファイルの場所は /usr/local/nginx/conf/nginx.conf です。
以上がPHP ファイルのアップロードが失敗する場合の解決策は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

この記事では、酸とベースのデータベースモデルを比較し、その特性と適切なユースケースを詳述しています。酸は、財務およびeコマースアプリケーションに適したデータの整合性と一貫性を優先し、ベースは可用性に焦点を当て、

この記事では、コードインジェクションのような脆弱性を防ぐために、PHPファイルのアップロードを確保することについて説明します。ファイルタイプの検証、セキュアストレージ、およびアプリケーションセキュリティを強化するエラー処理に焦点を当てています。

記事では、組み込み関数、ホワイトリストアプローチ、サーバー側の検証などの手法に焦点を当てたセキュリティを強化するためのPHP入力検証のベストプラクティスについて説明します。

この記事では、Token BucketやLeaky BucketなどのアルゴリズムやSymfony/Rate-Limiterなどのライブラリを使用するなど、PHPでAPIレート制限を実装するための戦略について説明します。また、監視、動的に調整されたレートの制限、および手をカバーします

この記事では、パスワードを保護するためにPHPでpassword_hashとpassword_verifyを使用することの利点について説明します。主な議論は、これらの関数が自動塩の生成、強力なハッシュアルゴリズム、およびSecurを通じてパスワード保護を強化するということです

この記事では、PHPおよび緩和戦略におけるOWASPトップ10の脆弱性について説明します。重要な問題には、PHPアプリケーションを監視および保護するための推奨ツールを備えたインジェクション、認証の壊れ、XSSが含まれます。

この記事では、PHPでのXSS攻撃を防ぐための戦略について説明し、入力の消毒、出力エンコード、セキュリティを向上させるライブラリとフレームワークの使用に焦点を当てています。

この記事では、PHPでのインターフェイスと抽象クラスの使用について説明し、それぞれをいつ使用するかに焦点を当てています。インターフェイスは、無関係なクラスや複数の継承に適した、実装なしで契約を定義します。抽象クラスは共通の機能を提供します


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

VSCode Windows 64 ビットのダウンロード
Microsoft によって発売された無料で強力な IDE エディター

AtomエディタMac版ダウンロード
最も人気のあるオープンソースエディター

EditPlus 中国語クラック版
サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 英語版
推奨: Win バージョン、コードプロンプトをサポート!

ホットトピック









