我需要以下列格式在数据库中插入多个图像,
09823754257b41f19e24c01471.jpg, 754257b41f19e24c01471422234.jpg,
我编写了以下代码以在数据库中插入值
<?php include "dbconnect.php";
if(isset($_POST['property_add'])){
$propTitle = $_POST['title'];
$propSize = $_POST['size'];
$propType = $_POST['type'];
$propLoc = $_POST['location'];
$propStatus = $_POST['status'];
$propPrice = $_POST['price'];
$propDesc = $_POST['propDesc'];
if(isset($_FILES['files'])){
foreach($_FILES['files']['tmp_name'] as $key => $tmp_name ){
$temp = explode(".", $_FILES['files']['name'][$key]);
$file_name = rand().uniqid().round(microtime(true)) . '.' . end($temp);
$file_size =$_FILES['files']['size'][$key];
$file_tmp =$_FILES['files']['tmp_name'][$key];
$file_type=$_FILES['files']['type'][$key];
$desired_dir="../property/".$propTitle."/".$propStatus."/";
if(is_dir($desired_dir)==false){
mkdir("$desired_dir", 0777, true); // Create directory if it does not exist
}
if(is_dir("$desired_dir/".$file_name)==false){
move_uploaded_file($file_tmp,"$desired_dir/".$file_name);
}else{ //rename the file if another one exist
$new_dir="$desired_dir/".$file_name.time();
rename($file_tmp,$new_dir) ;
}
if($tmep){
$photos[] = $file_name;
}
}
$files =implode(',', $photos);
$query = "INSERT INTO `property`(`property_name`, `property_size`, `property_type`,`property_loc`, `property_status`, `property_price`, `property_desc`, `property_photos`) VALUES ('$propTitle','$propSize','$propType','$propLoc','$propStatus','$propPrice','$propDesc','$files')";
mysqli_query($conn,$query);
echo "<script>alert('Property Added Successfully')</script>";
header('Location:../dashboard.php?tab=add&mode=success');
}
}
问题在于,如果我选择了两个图片img1
和img2
,但上面的代码会为文件生成以下值
09823754257b41f19e24c01471.jpg, 754257b41f19e24c01471422234.jpg,8237542e24c0171422252. ,
我希望这两个值只插入数据库中,我不知道为什么生成第三个值。
答案 0 :(得分:0)
你可以像这样使用数组
if($tmep){
$photos[] = $file_name; //put this code place of $photos .= $file_name." ,";
}
和
$files = implode(',', $photos);
这是返回完美的逗号分隔值。
答案 1 :(得分:0)
我认为这个问题发生在文件临时。请检查上传图片时如何生成临时文件(print_r()) http://php.net/manual/en/features.file-upload.multiple.php
我是面对这样的问题..我在临时
感谢
答案 2 :(得分:0)
最后,我使用unset
最后一个数组
unset($photos[count($photos)-1]);
$files = implode(',', $photos);
谢谢你们