私はPHPを初めて使用し、複数の画像アップローダーを作成しようとしています。私のフォームは次のようになります。
<form action="" method="post" enctype="multipart/form-data">
<p class="style2">Izberi datoteko: <br /><input type="file" name="image" multiple="multiple" /></p>
<p class="style2">
Izberi Album: <br />
<select name="album_id">
<?php
foreach ($albums as $album) {
echo '<option value="', $album['id'] ,'">', $album['name'] ,'</option>';
}
?>
</select>
</p>
<p class="style2"><input type="submit" value="Naloži Slike" /></p>
</form>
そして、php側では次のようなことをしました:
if (isset($_FILES['image'], $_POST['album_id'])) {
$image_name = $_FILES['image']['name'];
$image_size = $_FILES['image']['size'];
$image_temp = $_FILES['image']['tmp_name'];
$allowed_ext = array('jpg', 'jpeg', 'png', 'gif');
$a = explode('.', $image_name);
$image_ext = strtolower(end($a));
$album_id = $_POST['album_id'];
$errors = array();
if (empty($image_name) || empty($album_id)) {
$errors[] = '<p class="style2">Nekaj manjka!</p>';
} else {
if (in_array($image_ext, $allowed_ext) === false) {
$errors[] = '<p class="style2">Izbrani tip datoteke ni dovoljen!</p>';
}
if ($image_size > 2097152) {
$errors[] = '<p class="style2">Izbrana datoteka je prevelika! Maksimalna velikost datoteke mora biti 2mb!</p>';
}
}
if (!empty($errors)) {
foreach ($errors as $error) {
echo $error;
}
} else {
upload_image($image_temp, $image_ext, $album_id);
header('Location: view_album.php?album_id='.$album_id);
exit();
}
}
画像をデータベースに入れる関数を作成しました。この関数は次のようになります。
function upload_image($image_temp, $image_ext, $album_id) {
$album_id = (int)$album_id;
mysql_query("INSERT INTO `images` VALUES ('', '". $_SESSION['user_id'] ."', '$album_id', UNIX_TIMESTAMP(), '$image_ext')");
$image_id = mysql_insert_id();
$image_file = $image_id.'.'.$image_ext;
move_uploaded_file($image_temp, 'galerija/'.$album_id.'/'.$image_file);
create_thumb('galerija/'.$album_id.'/', $image_file, 'galerija/thumbs/'.$album_id.'/');
}
これは、1つの画像のみをアップロードする場合に問題なく機能します。複数の選択ファイルのフォームを作成しようとしましたが、さらに多くの画像を選択できますが、データベースでは最初の画像しか取得できません。スクリプトを挿入しようとしましforeach()
たが、どこにどのように挿入する必要があるのかわかりません。データベースにさらに画像をアップロードできるように、スクリプトを変更するにはどうすればよいですか?私はそれを理解することができません。どんな助けでも素晴らしいでしょう!