HTMLフォームから配列内のファイルを取得して、データベースに保存しようとしています。次のコードを書きましたが、多くのエラー メッセージが表示されます。主な問題は、配列を文字列に変換していないことです。
よろしくお願いします。
Line 27 : $image_name= $_FILES["files"]["name"]; LINE 29: $random_name= rand().$_FILES["files"]["name"];
$_FILES 出力
配列 ( [ファイル] => 配列 ( [名前] => 配列 ( [0] => ブレスレット_ゴールド.jpg [1] => ネックレス_シルバー.png [2] => ブローチ_ゴールド.png ) [タイプ] => 配列 ( [0] ] => image/jpeg [1] => image/png [2] => image/png ) [tmp_name] => Array ( [0] => F:\xampp\tmp\php599C.tmp [1] => F:\xampp\tmp\php599D.tmp [2] => F:\xampp\tmp\php599E.tmp ) [エラー] => 配列 ( [0] => 0 [1] => 0 [2] => 0 ) [サイズ] => 配列 ( [0] => 7150 [1] => 37867 [2] => 314296 ) ) )
<body>
<form action="" method="post" enctype="multipart/form-data">
<p>Pictures:
<input type="file" name="files[]" />
<input type="file" name="files[]" />
<input type="file" name="files[]" />
<input type="submit" value="Send" />
</p>
</form>
</body>
</html>
<?php
include 'connect.php';
if (isset($_FILES['files'])
|| ($_FILES["files"]["type"] == "image/jpeg"))
{
foreach($_FILES['files']['tmp_name'] as $key=> $tmp_name)
{
//echo $tmp_name."<br>";
echo $image_name= $_FILES["files"]["name"];
$random_name= rand().$_FILES["files"]["name"];
$folder="upload/products/" .$random_name;
move_uploaded_file($_FILES["files"]["tmp_name"],
"upload/products/" . $random_name);
$sql = "Insert into product_images (product_id,name,images)
VALUES ($current_id,'$image_name', '$folder')";
if (mysql_query($sql))
{
echo 'Done';
}
else
{
echo mysql_error();
}
}
}
?>
Notice: 27 行目の F:\xampp\htdocs\CMS\array_upload.php での配列から文字列への変換 Array Notice: 29 行目の F:\xampp\htdocs\CMS\array_upload.php での配列から文字列への変換
警告: move_uploaded_file() は、パラメーター 1 が文字列であると想定し、配列は F:\xampp\htdocs\CMS\array_upload.php 行 34 で指定されます