PHP で複数の画像をアップロードする
PHP アプリケーション、特にユーザーベースのアプリケーションでは、複数のファイルを一度にアップロードする必要がある場合があります。 また、PHP 関数と HTML 機能を使用すると、非常に可能性が高く、簡単に行うことができます。
これを可能にするには、コードベースの構造に応じて HTML ファイルまたはセクション内でフォーム アクションを指定し、組み込み関数を使用してアクションを処理する必要があります。
この記事では、PHP で複数の画像をアップロードする方法を学習します。これにより、フォーム入力から必要なファイルを指定し、ユーザーが選択したすべてのファイルを処理し、必要な場所にアップロードまたは移動するためのコンテキストが得られます。
PHP で複数のファイルをアップロードするためのフォーム アクションと $_FILES
を理解する
ユーザーが入力を HTML フォームに配置すると、POST
メソッドを使用して、入力 (テキストからファイルまで) を PHP アプリケーションが存在するサーバー側に送信します。
<form method='post' action='' enctype='multipart/form-data'>
enctype='multipart/form-data'
部分は、フォーム データのエンコード方法を指定し、フォーム内でファイルのアップロードを使用するときに必要です。
ファイルのアップロードには、入力タイプ file
と指定された名前 (任意の名前にすることができます)、file
が必要です。
<input type="file" name="file" id="file">
複数のファイルをアップロードするには、入力タイプ file
が必要ですが、別の指定された名前 file[]
と追加された属性 multiple
が必要です。 []
の追加は、入力フィールドが複数のファイルを処理できることを示します。
<input type="file" name="files[]" multiple/>
サーバー側では、グローバル変数 $_FILES
は、HTTP POST
メソッドを介してアップロードされたファイルを含む連想配列であり、ファイルを適切に処理できるようにします。
<?php
$_FILES["files"]
move_uploaded_file()
を使用して PHP で複数の画像をアップロードする
基本を理解したので、複数のファイルをアップロードする必要があります。 複数の画像をアップロードするための PHP フォームを作成しましょう。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Multiple Image Upload</title>
</head>
<body>
<form method="post" enctype="multipart/form-data" name="formUploadFile">
<label>Select image(s) to upload:</label>
<input type="file" name="files[]" multiple="multiple" />
<input type="submit" value="Upload File" name="imgSubmit" />
</form>
<?php
if (isset($_POST["imgSubmit"])) {
$errors = [];
$uploadedFiles = [];
$extension = array("jpeg", "jpg", "png");
$UploadFolder = "images";
$counter = 0;
foreach ($_FILES["files"]["tmp_name"] as $key => $tmp_name) {
$temp = $_FILES["files"]["tmp_name"][$key];
$name = $_FILES["files"]["name"][$key];
if (empty($temp)) {
break;
}
$counter++;
$UploadOk = true;
$ext = pathinfo($name, PATHINFO_EXTENSION);
if (in_array($ext, $extension) == false) {
$UploadOk = false;
array_push($errors, $name . " isn't an image.");
}
if ($UploadOk == true) {
move_uploaded_file($temp, $UploadFolder . "/" . $name);
array_push($uploadedFiles, $name);
}
}
if ($counter > 0) {
if (count($errors) > 0) {
echo "<b>Errors:</b>";
echo "<br/><ul>";
foreach ($errors as $error) {
echo "<li>" . $error . "</li>";
}
echo "</ul><br/>";
}
if (count($uploadedFiles) > 0) {
echo "<b>Uploaded Files:</b>";
echo "<br/><ul>";
foreach ($uploadedFiles as $fileName) {
echo "<li>" . $fileName . "</li>";
}
echo "</ul><br/>";
echo count($uploadedFiles) . " iamge(s) are successfully uploaded.";
}
} else {
echo "Please, Select image(s) to upload.";
}
}
?>
</body>
</html>
isset()
関数を使用して $_POST[]
変数が設定されているかどうかを確認し、重要な変数を開始して、ファイルのアップロードに必要な拡張子を設定します。
if (isset($_POST["imgSubmit"])) {
$errors = [];
$uploadedFiles = [];
$extension = array("jpeg", "jpg", "png");
$UploadFolder = "images";
その後、$_FILES[]
変数を介して処理された複数の画像をループし、pathinfo()
を使用して拡張子を確認し、true
の場合、指定されたフォルダーに画像を移動します
move_uploaded_file() 関数を使用して $UploadFolder
を作成し、画像の名前を $uploadedFiles
変数にプッシュします。
foreach ($_FILES["files"]["tmp_name"] as $key => $tmp_name) {
$temp = $_FILES["files"]["tmp_name"][$key];
$name = $_FILES["files"]["name"][$key];
if (empty($temp)) {
break;
}
$counter++;
$UploadOk = true;
$ext = pathinfo($name, PATHINFO_EXTENSION);
if (in_array($ext, $extension) == false) {
$UploadOk = false;
array_push($errors, $name . " isn't an image.");
}
if ($UploadOk == true) {
move_uploaded_file($temp, $UploadFolder . "/" . $name);
array_push($uploadedFiles, $name);
}
}
最後に、存在するエラーとアップロードされたファイルを表示しました。
if ($counter > 0) {
if (count($errors) > 0) {
echo "<b>Errors:</b>";
echo "<br/><ul>";
foreach ($errors as $error) {
echo "<li>" . $error . "</li>";
}
echo "</ul><br/>";
}
if (count($uploadedFiles) > 0) {
echo "<b>Uploaded Files:</b>";
echo "<br/><ul>";
foreach ($uploadedFiles as $fileName) {
echo "<li>" . $fileName . "</li>";
}
echo "</ul><br/>";
echo count($uploadedFiles) . " image(s) are successfully uploaded.";
}
} else {
echo "Please, Select image(s) to upload.";
}
ブラウザに提供された PHP ファイル。
画像を選択し、画像をアップロードします。
次に、アップロードされたファイルを表示します。
アップロードされた画像:
画像ではないファイルを選択すると、エラーが発生します。
Olorunfemi is a lover of technology and computers. In addition, I write technology and coding content for developers and hobbyists. When not working, I learn to design, among other things.
LinkedIn