目次
Set up the HTML form
Access the uploaded file in PHP
Validate and move the file
Security best practices
ホームページ バックエンド開発 PHPチュートリアル PHPでファイルアップロードを処理する方法は?

PHPでファイルアップロードを処理する方法は?

Sep 09, 2025 am 06:18 AM
php ファイルのアップロード

First, set up an HTML form with enctype="multipart/form-data" and method="post", then access the file via $_FILES in PHP, validate its type, size, and error status, move it securely using move_uploaded_file(), and follow security practices like storing outside web root and using random filenames.

How to handle file uploads in PHP?

Handling file uploads in PHP involves processing files sent from an HTML form, validating them, and securely storing them on the server. Here’s how to do it properly and safely.

Set up the HTML form

To allow file uploads, your HTML form must include the enctype="multipart/form-data" attribute and use the POST method.

Example:


  
  

Access the uploaded file in PHP

When a file is uploaded, PHP stores it temporarily and provides access via the $_FILES superglobal array. This array contains key details like name, type, size, tmp_name, and error.

In your upload.php file:

$fileName = $_FILES['uploaded_file']['name'];
$fileTmpName = $_FILES['uploaded_file']['tmp_name'];
$fileSize = $_FILES['uploaded_file']['size'];
$fileType = $_FILES['uploaded_file']['type'];
$fileError = $_FILES['uploaded_file']['error'];

Validate and move the file

Never trust user input. Always validate the file before moving it to a permanent location.

  • Check for upload errors using $fileError === UPLOAD_ERR_OK
  • Verify file size (e.g., limit to 2MB)
  • Check allowed file types by extension or MIME type
  • Use move_uploaded_file() to move from temporary to desired directory

Example validation and move:

$uploadDir = 'uploads/';
$allowedTypes = ['image/jpeg', 'image/png', 'image/gif'];
$maxSize = 2 * 1024 * 1024; // 2MB

if ($fileError === UPLOAD_ERR_OK) {
  if (in_array($fileType, $allowedTypes) && $fileSize <= $maxSize) {
    $destination = $uploadDir . basename($fileName);
    if (move_uploaded_file($fileTmpName, $destination)) {
      echo "File uploaded successfully.";
    } else {
      echo "Failed to save file.";
    }
  } else {
    echo "Invalid file type or size too large.";
  }
} else {
  echo "Upload error.";
}

Security best practices

File uploads are a common attack vector. Follow these tips:

  • Store uploaded files outside the web root when possible
  • Use random filenames to prevent overwrites and path traversal
  • Avoid executing uploaded files (e.g., don’t allow .php uploads)
  • Verify file content using functions like getimagesize() for images
  • Set proper permissions on upload directories

Basically, handle file uploads with care—validate everything and never assume the file is safe.

以上がPHPでファイルアップロードを処理する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Stock Market GPT

Stock Market GPT

AIを活用した投資調査により賢明な意思決定を実現

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

ホットトピック

PHPにシングルトンパターンを実装する方法は? PHPにシングルトンパターンを実装する方法は? Sep 25, 2025 am 12:27 AM

Singleton Patternは、クラスに1つのインスタンスしかないことを保証し、単一のオブジェクトがデータベース接続や構成管理などのシステムの動作を調整するシナリオのグローバルアクセスポイントを提供します。 2。その基本構造には、プライベート静的属性ストレージインスタンス、プライベートコンストラクターが外部の作成を防ぎ、プライベートクローニング方法がコピーを防止し、インスタンスを取得するためのpublic staticメソッド(getInstance()など)が含まれます。 3. getInstance()メソッドを呼び出してPHPで一意のインスタンスを取得し、何回呼び出されても同じオブジェクト参照を返します。 4.標準のPHPリクエストモデルでは、スレッドの安全性を考慮する必要はありませんが、同期の問題は長期的またはマルチスレッド環境で注意を払う必要があり、PHP自体はネイティブロックメカニズムをサポートしていません。 5。シングルトンは便利ですが、

PHPでnull coulescingオペレーター(??)を使用する方法は? PHPでnull coulescingオペレーター(??)を使用する方法は? Sep 25, 2025 am 01:28 AM

回答:PHPの空のマージ演算子(??)は、変数キーまたは配列キーが存在し、nullではないかどうかを確認するために使用されます。それが本当なら、それはその値を返し、それ以外の場合はデフォルト値を返します。長いISSET()チェックの使用を回避し、$ username = $ userInput ?? 'guest'などの未定義の変数や配列キーの処理に適しています。

PHPでURLパラメーターを取得する方法は? PHPでURLパラメーターを取得する方法は? Sep 24, 2025 am 05:11 AM

$ _getを使用して、?name = john&age = 25などのURLパラメーターを取得します。 ISSETまたは空のマージオペレーターを介して存在を確認し、Filter_Inputでデータをフィルタリングおよび検証して、セキュリティを確保します。

PHPでURLからファイルをダウンロードする方法は? PHPでURLからファイルをダウンロードする方法は? Sep 24, 2025 am 05:45 AM

回答:file_get_contentsとcurlを使用してURLファイルをダウンロードします。前者はシンプルですが制限がありますが、後者はより柔軟でストリーミングをサポートします。例には、ファイルを直接読み書き、CURL初期化の設定オプションと保存、エラー処理の追加、HTTPステータスチェックが含まれます。メモリを保存するためにブロックでダウンロードをストリーミングするために大きなファイルが推奨され、ディレクトリが書かれ、例外を適切に処理できるようにします。

PHPで機能を無効にする方法は? PHPで機能を無効にする方法は? Sep 24, 2025 am 02:40 AM

todisableaphpfunction、sudisable_functionsinphp.iniforbuiltionslikeexecorsystem、foruser-defiededecurity;

PHPクラスでインターフェイスを実装する方法は? PHPクラスでインターフェイスを実装する方法は? Sep 25, 2025 am 05:34 AM

Interfaceを実装するには、Implementsキーワードを使用すると、クラスはインターフェイス内のすべてのメソッドの特定の実装を提供する必要があります。 2。インターフェイスを定義して、インターフェイスキーワードを使用してメソッドを宣言します。 3。クラスはインターフェイスを実装し、メソッドをオーバーライドします。 4.オブジェクトを作成し、メソッドを呼び出して結果を出力します。 5.クラスは複数のインターフェイスを実装して、コードの仕様と保守性を確保することができます。

PHPのXSSを防ぐためにユーザー入力をサニタイズする方法は? PHPのXSSを防ぐためにユーザー入力をサニタイズする方法は? Sep 25, 2025 am 05:19 AM

topreventxssinphp、sanitizeuserininputandescapeoutput basedoncontextusinghtmlspecialchars()forhtml、json_encode()forjavascript、andvalidattlywithfilter_var()forexectedDatatypes

PHPを使用してHTMLフォームにメソッドを取得および投稿する方法は? PHPを使用してHTMLフォームにメソッドを取得および投稿する方法は? Sep 25, 2025 am 03:46 AM

GETメソッドは、非敏感な情報に適したURLにデータを添付します。 POSTメソッドは、リクエスト本体を介してデータを送信します。これは、より安全で機密情報に適しています。

See all articles