gpt4 book ai didi

php - 使用 php 和 sql 上传多张图片

转载 作者:行者123 更新时间:2023-11-29 01:30:53 25 4
gpt4 key购买 nike

我是 php 的新手,我正在尝试制作一个多图像 uploader 。我的表单如下所示:

<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.'/');
}

这适用于只上传一张图片。我试图为多个选择文件创建一个表单,我可以选择更多图像,但在数据库中只获取第一张图像。我试图将 foreach() 放入我的脚本中,但我不知道必须将其放入何处以及如何放入。那么我该如何更改我的脚本以便我可以将更多图像上传到我的数据库中呢?我只是想不通。任何帮助都会很棒!

最佳答案

一个。 PHP 不会像那样看到您的多个文件

替换

  <input type="file" name="image" multiple="multiple" />

 <input type="file" name="image[]" multiple="multiple" />

要遍历这个文件你需要类似的东西

foreach ( $_FILES['image']['tmp_name'] as $key => $val ) {

$fileName = $_FILES['image']['name'][$key];
$fileSize = $_FILES['image']['size'][$key];
$fileTemp = $_FILES['image']['tmp_name'][$key];

$fileExt = pathinfo($fileName, PATHINFO_EXTENSION);
$fileExt = strtolower($fileExt);

// Continue
}

关于php - 使用 php 和 sql 上传多张图片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12886878/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com