我正在尝试将4个图像上传到我的文件目录中,并且我想在数据库中保存对它们的引用。但是使用下面的当前代码,它的作用是,它在数据库中插入另一行而不是将图像1放入img1,依此类推。
我放弃了。我不知道我在这里做错了什么。
<?php
if(isset($_POST['go']))
{
if(isset($_FILES['file_array']))
{
$name_array = $_FILES['file_array']['name'];
$tmp_name_array = $_FILES['file_array']['tmp_name'];
$type_array = $_FILES['file_array']['type'];
$size_array = $_FILES['file_array']['size'];
$error_array = $_FILES['file_array']['error'];
$currently_item = "";
for($i = 0; $i < count($tmp_name_array); $i++)
{
if(move_uploaded_file($tmp_name_array[$i],'users_posted_data/'.$name_array[$i]))
{
$currently_item = current($_FILES['file_array']['name']);
$sql = $conn->query("INSERT INTO posts(img1, img2, img3) Values('{$currently_item}')");
echo $name_array[$i] . "uploaded successfully" . '<br>';
}
else
{
}
}
}
}
?>
<form action="" method="post" enctype="multipart/form-data">
<input type="file" name="file_array[]"><br><br>
<input type="file" name="file_array[]"><br><br>
<input type="file" name="file_array[]"><br><br>
<input type="file" name="file_array[]"><br><br>
<input type="submit" name="go" value="Publish">
</form>
答案 0 :(得分:1)
试试这个:
在循环中:
$currently_item[] = current($_FILES['file_array']['name']);
走出循环
$currently_item = current($_FILES['file_array']['name']);
$sql = $conn[![enter image description here][1]][1]->query("INSERT INTO posts(img1, img2, img3)
Values('".$currently_item[0]."','".$currently_item[1]."','".$currently_item[2]."')");
执行验证检查,例如是否存在值。
答案 1 :(得分:1)
尝试使用LOAD_FILE函数传递文件。它将文件内容作为字符串返回,您可以在INSERT或UPDATE命令中使用它 -
INSERT INTO table(id, file_name, file_data) VALUES(1, 'img.png', LOAD_FILE('img.png'));
LOAD_FILE功能。