フィールドの配列からのものかどうかに応じて、単一の画像または複数の画像をアップロードできる機能を構築しています。
関数と呼び出し元は次のとおりです。
private function imageUpload($image, $altText, $uploadDir)
{
$uploadDir = (!substr($uploadDir, "/")) ? $uploadDir."/" : $uploadDir;
print_r($_POST[$image]);
if(is_array($_POST[$image]))
{
foreach($_FILES[$image] as $image) //Line 316
{
//$targetPath = $uploadDir.basename($image['name']);
//echo $targetPath;
echo "array";
}
}
else
{
$targetPath = $uploadDir.basename($image['name']);
//echo $targetPath;
echo "not array";
}
}
$this->imageUpload('pei_image', 'pei_alt', '/images/upload/products/');
pei_image[] フィールドで 1/2 画像フィールドを使用しようとしましたが、次のエラーが発生します。
PHP エラーが発生しました
重大度: 通知メッセージ: 未定義のインデックス: pei_image
ファイル名: models/products_model.php
ライン番号: 316
PHP エラーが発生しました
重大度: 警告
メッセージ: foreach() に無効な引数が指定されました
ファイル名: models/products_model.php
ライン番号: 316
しかし、$_POST[$image] を print_r すると、正しい量の値を持つ配列が得られました。結果は次のとおりです。
配列 ( [0] => 06 Lect03 WD コンセプト - mod SP.png [1] => brtemplate.jpg )
なにが問題ですか?
編集
$_FILES 配列が空です。なぜですか? フォーム内の 2 つの画像アップロード フィールドは次のとおりです。
<input type="file" name="pei_image[]" value="Showing-the-Heavy-horse.jpg" class="imageUpload" onchange="removePreviewButton(this, 2);">
<input type="file" name="pei_image[]" value="Showing-the-Heavy-horse.jpg" class="imageUpload" onchange="removePreviewButton(this, 3);">