【问题标题】:How to upload and insert multiple images in PHP and mysql database如何在 PHP 和 mysql 数据库中上传和插入多个图像
【发布时间】:2024-01-01 07:08:01
【问题描述】:

我是 PHP 初学者。我在 base64String 中编码了一些图像。指定文件夹中的所有图像均已成功解码。我的问题是只能在数据库中记录一个图像/路径。有人帮我想出 PHP 在数据库中的一行中插入所有图像路径。

这里是php代码

 <?PHP
if(isset($_POST['image']))
{
$image = $_POST['image'];
$identity = $_POST['id'];
$username = $_POST['username'];

//create unique image file name based on micro time and date
$now = DateTime::createFromFormat('U.u', microtime(true));
$id = rand(1000000, 10000000000);
$id2=rand(1000000, 10000000000);

$upload_folder = "upload";
$id="$id$id2";
$path = "$upload_folder/$id.jpeg";

if(file_put_contents($path, base64_decode($image)) != false){
    echo "uploaded_success";

   $sql = "UPDATE apartment SET Image_path = '$path' WHERE apart_username 
  ='$username' AND id = '$identity'";

   mysqli_query($conn, $sql);   

}
else{
    echo "uploaded_failed";
}    
exit;
}
else{
echo "images_not_in";
exit;

} ?>

【问题讨论】:

  • 我知道准备好的语句。我正在使用此代码进行个人试验。我被困住了。如果可以,请提供帮助。
  • 如果第一次没有时间做对,以后什么时候有时间再补充?我讨厌人们说“我没那么远......”“这个网站不会公开......”“它只是因为学校,所以安全并不重要......”。如果教师和教授从一开始就没有谈论安全,那么他们就做错了。挑战他们。他们正在教授草率和危险的编码实践,学生以后将不得不忘记这些实践。我也讨厌人们说,“我稍后会添加安全性......”“安全性现在不重要......””忽略安全风险...”.

标签: php android mysql base64


【解决方案1】:

您需要某种循环...在下面的示例中,我所做的只是创建了一个名为 $imagesArr 的数组,而不是创建一个名为 image 的变量。我在 imagesArr 上添加了一个 foreach 循环,因此它将运行您为输入到该数组中的每个图像编写的代码。我还在最后杀死了出口,因为这会停止循环。应该可以的

 <?PHP
if(isset($_POST['image']))
{
//$image = $_POST['image']; - I commented this out
$imagesArr = array('image1.jpeg','image2.jpeg','image3.jpeg'); //etc. put all of your images here into this array    
$identity = $_POST['id'];
$username = $_POST['username'];
foreach ($imagesArr as $key => $image) {
//create unique image file name based on micro time and date
$now = DateTime::createFromFormat('U.u', microtime(true));
$id = rand(1000000, 10000000000);
$id2=rand(1000000, 10000000000);

$upload_folder = "upload";
$id="$id$id2";
$path = "$upload_folder/$id.jpeg";

if(file_put_contents($path, base64_decode($image)) != false){
    echo "uploaded_success";

   $sql = "UPDATE apartment SET Image_path = '$path' WHERE apart_username 
  ='$username' AND id = '$identity'";

   mysqli_query($conn, $sql);   

}
else{
    echo "uploaded_failed";
}    
}
else{
echo "images_not_in";
}
}

【讨论】:

  • 图像来自 Android,我想将它们的所有路径插入数据库中的一行。
  • 你如何构建你的数据库完全取决于你(我会亲自让每张图片都有自己的一行)......你仍然需要一个 foreach 循环来制作图片,但你可以把它们全部如果您想排成一排……您会卡在哪一部分?将图像发布到数组?
最近更新 更多