gpt4 book ai didi

php - 使用 PHP 上传多张图片只保存一个文件路径到 MySQL 数据库

转载 作者:太空宇宙 更新时间:2023-11-03 12:25:12 25 4
gpt4 key购买 nike

我正在为一个 friend 建立一个网站,并设置了一个将多张图片上传到数据库的表单。它只能由一个人访问,并且对公众不可见,因此为了简化编码,我忽略了很多可能对代码造成的威胁,以便让它正常工作。

HTML 很简单,它只是:

<form action="(url here)" method="post" enctype="multipart/form-data">
<input type="file" name="files[]" multiple>
<input id="formbutton" type= "submit" value="Upload!">
</form>

这是我担心的 php。

if(isset($_FILES['files'])){ 
foreach ($_FILES['files']['tmp_name'] as $key => $tmp_name){
$target="images/costume/";
$target=$target.$_FILES['files']['name'][$key];
if(move_uploaded_file($tmp_name, $target)){
$id = mysql_insert_id($con);
mysql_query("INSERT INTO costumes (id,name) VALUES ('$id','$name')");
}
}
}

所有图像文件都上传到服务器上的目录,但实际上只有一个图像作为带有 ID 和文件名的行存储到 MySQL 表中。

我一直在绞尽脑汁,疯狂地寻找解决方案,但没有一个有效。我知道它与 foreach 循环有关,但我不知道该怎么做才能让我上传的每张图片在数据库中创建一行。

谢谢大家的帮助。

抱歉,我正在修改,忘记切换回上一节的原始代码:

if(isset($_FILES['files'])){ 
foreach ($_FILES['files']['tmp_name'] as $key => $tmp_name){
$target="images/costume/";
$target=$target.$_FILES['files']['name'][$key];
if(move_uploaded_file($tmp_name, $target)){
$id = mysql_insert_id($con);
mysql_query("INSERT INTO costumes (id,name) VALUES ('$id','$target')");
}
}
}

本该如此

最佳答案

1- 你应该用你想要存储的图像列表创建一个数组

2- 在表中的列 ID 中使用自动增量(重要)

你也有数组,你可以按如下方式进行查询:

从帖子中获取数据

$IMG = isset($_POST['files']) ? $_POST['files'] : array();
if (!empty($IMG)) {
$uploads_dir = 'images/costume/';
foreach ($IMG["error"] as $key => $error) {
if ($error == UPLOAD_ERR_OK) {
$tmp_name = $IMG["tmp_name"][$key];
$name = $IMG["name"][$key];
move_uploaded_file($tmp_name, "$uploads_dir/$name");
$name_array=mysql_real_escape_string($name);
$value_insert[] = "('" . $name_array . "')";
}
}
$values_insert = implode(',', $value_insert);
$query = "INSERT INTO costumes (name) VALUES" . $values_insert;
$result = mysql_query($query);
}else{
echo 'empty array';
}

作为旁注:Mysql_* 扩展自 PHP 5.5.0 起已弃用,并将在未来删除。相反,应该使用 MySQLi 或 PDO_MySQL 扩展。

有用的链接 Why shouldn't I use mysql_* functions in PHP

关于php - 使用 PHP 上传多张图片只保存一个文件路径到 MySQL 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18006248/

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