我已经设置了一个表单来从 PHP 脚本上传多个文件,然后将其插入带有路径的数据库中。这是我的代码
<form action="" method="post" enctype="multipart/form-data">
<tr class='first'>
<td>Property Image : </td>
<td>
<input type="file" name="pic_upload[]" >
<input type="file" name="pic_upload[]" >
<input type="file" name="pic_upload[]" >
</td>
</tr>
<tr class='first'>
<td> </td><td><input type="submit" name="create" value="Add" /></td>
</tr>
</form>
<?php
if(isset($_POST['create'])) {
$path = "images/";
for ($i=0; $i<count($_FILES['pic_upload']['name']); $i++) {
$ext = explode('.', basename( $_FILES['pic_upload']['name'][$i]));
$path = $path . md5(uniqid()) . "." . $ext[count($ext)-1];
move_uploaded_file($_FILES['pic_upload']['tmp_name'][$i], $path);
}
$sql = "INSERT INTO post (`image`) VALUES ('$path');";
$res = mysqli_query($con,$sql) or die("<p>Query Error".mysqli_error()."</p>");
echo "<p>Post Created $date</p>";
}
?>
脚本成功运行,但在列内的数据库端,它看起来像这样。
图片/8de3581eb72ee7b39461df48ff16f4a3.jpg024fae942ae8c550a4bd1a9e028d4033.jpg380cc327df25bc490b83c779511c015b.jpg
请帮我解决这个问题
Move $path = "images/";
在 for 循环内。否则,您将附加到文件名,而不会在每次迭代后重置它。实际上,您根本不需要为该前缀使用变量。你可以简单地写'images/' . md5(uniqid()) . "." . $ext[count($ext)-1]
立即地。
要将值写入数据库,您也可以在每次迭代中运行查询,或者将路径添加到数组中,该数组根据 SQL 语法转换为逗号分隔的插入列表。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)