Upload multiple images and store their path in database(上传多张图片并将其路径存储在数据库中)
问题描述
我正在制作一个表格,用户可以通过它上传多张图片.当用户上传图像时,它们会存储在服务器的文件夹中.直到这里一切正常,但是当我尝试将图像的路径保存在数据库中时,而不是路径,两个图像的名称仅存储在一行中.我希望每个图像的路径应该存储在不同的行中.
</表单>
admin_insert_property_images.php
你的 $filepath
变量和你的 query
必须在你的循环中.
您还使用了与 mysqli_
函数不兼容的 mysql_query
.
这两个 API 不能混合在一起.使用 mysqli_query
同时将数据库连接传递给它.
I am making a form through which user can upload multiple images. When the user uploads the images they get stored in the server's folder. Everything works fine till here but when I am trying to save the path of the images in the database then instead of the path, the name of both the images gets stored in one row only. I want that the path of each image should get stored in different row.
<form action="admin_insert_property_images.php" method="post" enctype="multipart/form-data">
<div class="form-group">
<label class="col-md-3 control-label">Upload Image:</label>
<div class="col-md-8">
<input type="file" id="file" name="support_images[]" multiple accept="image/*" />
</div>
</div>
<div class="form-group">
<label class="col-md-3 control-label"></label>
<div class="submit">
<input class="btn btn-primary" value="Save " type="submit" name="submit">
</div>
</div>
</form>
admin_insert_property_images.php
<?php
$con=mysqli_connect("abc.com","abc","ab","abc");
// Check connection
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
if(isset($_POST['submit']))
{
extract($_POST);
if(isset($_FILES['support_images']['name']))
{
$file_name_all="";
for($i=0; $i<count($_FILES['support_images']['name']); $i++)
{
$tmpFilePath = $_FILES['support_images']['tmp_name'][$i];
if ($tmpFilePath != "")
{
$path = "propertyimages/"; // create folder
$name = $_FILES['support_images']['name'][$i];
$size = $_FILES['support_images']['size'][$i];
list($txt, $ext) = explode(".", $name);
$file= time().substr(str_replace(" ", "_", $txt), 0);
$info = pathinfo($file);
$filename = $file.".".$ext;
if(move_uploaded_file($_FILES['support_images']['tmp_name'][$i], $path.$filename))
{
$file_name_all.=$filename."*";
}
}
}
$filepath = rtrim($file_name_all, '*');
$query=mysqli_query($con,"INSERT into propertyimages (`propertyimage`) VALUES('".addslashes($filepath)."'); ");
}
else
{
$filepath="";
}
if($query)
{
header("Location: admin_profile.php");
}
}
?>
Your $filepath
variable and your query
has to be in your loop.
You are also using mysql_query
which is not compatible with mysqli_
functions.
Those two APIs do not mix together. Use mysqli_query
while passing DB connection to it.
<?php
$con=mysqli_connect("abc.com","abc","ab","abc");
// Check connection
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
if(isset($_POST['submit']))
{
extract($_POST);
if(isset($_FILES['support_images']['name']))
{
$file_name_all="";
for($i=0; $i<count($_FILES['support_images']['name']); $i++)
{
$tmpFilePath = $_FILES['support_images']['tmp_name'][$i];
if ($tmpFilePath != "")
{
$path = "propertyimages/"; // create folder
$name = $_FILES['support_images']['name'][$i];
$size = $_FILES['support_images']['size'][$i];
list($txt, $ext) = explode(".", $name);
$file= time().substr(str_replace(" ", "_", $txt), 0);
$info = pathinfo($file);
$filename = $file.".".$ext;
if(move_uploaded_file($_FILES['support_images']['tmp_name'][$i], $path.$filename))
{
$file_name_all.=$filename."*";
}
}
$filepath = rtrim($file_name_all, '*').$path;
$query=mysqli_query($con,"INSERT into propertyimages (`propertyimage`) VALUES('".addslashes($filepath)."'); ");
}
}
else
{
$filepath="";
}
if($query)
{
header("Location: admin_profile.php");
}
}
这篇关于上传多张图片并将其路径存储在数据库中的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:上传多张图片并将其路径存储在数据库中
基础教程推荐
- 如何在 PHP 中的请求之间持久化对象 2022-01-01
- Libpuzzle 索引数百万张图片? 2022-01-01
- 在 PHP 中强制下载文件 - 在 Joomla 框架内 2022-01-01
- mysqli_insert_id 是否有可能在高流量应用程序中返回 2021-01-01
- WooCommerce 中选定产品类别的自定义产品价格后缀 2021-01-01
- 通过 PHP SoapClient 请求发送原始 XML 2021-01-01
- XAMPP 服务器不加载 CSS 文件 2022-01-01
- 在多维数组中查找最大值 2021-01-01
- 在 Woocommerce 中根据运输方式和付款方式添加费用 2021-01-01
- 超薄框架REST服务两次获得输出 2022-01-01