ホームページ >バックエンド開発 >PHPチュートリアル >PHPファイルアップロードの詳しい説明_PHPチュートリアル
ファイルのアップロードは HTML 表示部分と PHP 処理部分の 2 つの部分に分かれており、HTML 部分は主にユーザーがアップロードするファイルを選択し、PHP の $_FILES を通じてバックグラウンドでファイルを受信できるようにするために使用されます。次に、指定したディレクトリにファイルをアップロードします。
HTML部分:
コードは次のとおりです | コードをコピー |
説明:
form タグの action="upload.php" は、このフォームで送信をクリックすると、アップロード コマンドが処理のために、upload.php というページに送信されることを意味します。 Method="post" は、ポスト モードでの送信を意味します。 enctype="multipart/form-data" 属性は、このフォームを送信するときに使用するコンテンツ タイプを指定します。ファイル コンテンツなどのバイナリ データが必要な場合は、「multipart」を使用してください。 /form-data"、ファイルをアップロードする場合、この属性は必要です。入力の Type="file" は、入力をファイルとして処理することを指定し、入力の後ろに参照ボタンが表示されます。
PHP 部分:
コードは次のとおりです | コードをコピー |
if($_FILES['myfile']['name'] != '') { if($_FILES['myfile']['error'] > 0) { echo "エラーステータス:" . $_FILES['myfile']['error']; } 他 { move_uploaded_file($_FILES['myfile']['tmp_name'] , "uploads/" . $FILES['myfile']['name']); echo "<script>alert(アップロード成功!);</script>"; } } 他{ echo "<script>alert(ファイルをアップロードしてください!);</script>"; } ?> |
説明:
このコードを説明する前に、次の知識を理解する必要があります。
$_FILES['myfile']['name'] は、アップロードされたファイルの名前を指します
$_FILES['myfile']['type'] はアップロードされるファイルのタイプを指します
$_FILES['myfile']['size'] は、アップロードされたファイルのサイズをバイト単位で表します (B)
$_FILES['myfile']['tmp_name'] は、サーバーに保存されているアップロードされたファイルの一時コピー ファイルの名前を指します。ファイルが指定されたディレクトリに移動された後、一時ファイルは自動的に破棄されます。
$_FILES['myfile']["error"] は、ファイルのアップロード中に発生する可能性のあるエラーのステータス コードを指します。各ステータスの意味は後で説明します。
まず、$_FILES['myfile']['name'] の myfile は、上記の HTML ページにアップロードされたファイル タグの名前の値を参照します。これに基づいて、処理しているファイルがどの入力によって送信されたかを知ることができます。次に、$_FILES['myfile']['name'] が空かどうかを確認して、ユーザーがファイルをアップロードしたかどうかを確認し、さまざまな操作を実行します。ファイルがアップロードされ、ステータスが 0 であれば、アップロードが成功したことを意味します。 move_uploaded_file メソッドを使用して、アップロードされたファイルを指定されたディレクトリに保存します。このパスは、この PHP ファイル (upload.php) からの相対ディレクトリです。たとえば、アップロードされたファイルを、upload.php の 1 レベル上の user というフォルダーに移動する場合は、次のように記述できます: move_uploaded_file($_FILES['myfile']['tmp_name'], "../user / " . $FILES['myfile']['name'])、このメソッドは非常に便利で柔軟に使用できます。この方法で、ファイルがサーバーにアップロードされ、サーバー内のディレクトリを開いてファイルを表示できます。ファイル。 ユーザーにファイルのアップロードを許可することは、セキュリティ上の大きなリスクを伴う行為であるため、通常、ユーザーがアップロードするファイルには次のような制限を設けます。
コードをコピー | |
if($_FILES['myfile']['name'] != '') { if($_FILES['myfile']['error'] > 0) { echo "エラーステータス:" . $_FILES['myfile']['error']; } 他 { if($_FILES['myfile']['type'] == 'image/jpeg' または $_FILES['myfile']['type'] == 'image/pjpeg' または $_FILES['myfile']['type'] == 'image/gif' && $_FILES['myfile']['size'] move_uploaded_file($_FILES['myfile']['tmp_name'] , "uploads/" . $FILES['myfile']['name']); echo "<script>alert(アップロード成功!);</script>"; } 他 { echo " |