Ho un modulo che aiuta a caricare più immagini nella cartella del server e salva il loro percorso nel database, il problema è che il percorso di tutte le immagini viene caricato su una colonna, ea causa di ciò ho problemi nel recuperare il percorso per visualizzare l'immagine. La soluzione sarebbe che io o le immagini vengano memorizzate in colonne diverse o trovo il modo di separare le immagini, tuttavia non sono in grado di fare entrambe le cose.Memorizza il percorso dell'immagine nella colonna del database diverso
percorso che viene sempre immagazzinato sembra
uploads/c376437e2a45598b2f4d89eae4f191e8.png*uploads/c376437e2a45598b2f4d89eae4f191e8.png8069756be5095978123ae51fadbffe3b.png*uploads/c376437e2a45598b2f4d89eae4f191e8.png8069756be5095978123ae51fadbffe3b.png04aaa414c21dc057bc594b896124068e.png
Struttura del database demo
id offimage offimage1 offimage2
Il codice che ho finora (modulo e il codice php sono sulla pagina diversa)
<form enctype="multipart/form-data" action="co_insert_office_image.php?id=<?php echo $_GET['id']; ?>" method="post">
First Field is Compulsory. Only JPEG,PNG,JPG Type Image Uploaded. Image Size Should Be Less Than 100KB.
<hr/>
<div id="filediv"><input name="file[]" type="file" id="file"/></div><br/>
<input type="button" id="add_more" class="upload" value="Add More Files"/>
<input type="submit" value="Upload File" name="submit" id="upload" class="upload"/>
</form>
co_insert_office_image.php
<?php
ob_start();
include('co_session.php');
$con=mysqli_connect("localhost","root","","db");
// Check connection
if (mysqli_connect_errno()) {
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
if (isset($_POST['submit'])) {
$j = 0; //Variable for indexing uploaded image
$target_path = "uploads/"; //Declaring Path for uploaded images
for ($i = 0; $i < count($_FILES['file']['name']); $i++) {//loop to get individual element from the array
$validextensions = array("jpeg", "jpg", "png"); //Extensions which are allowed
$ext = explode('.', basename($_FILES['file']['name'][$i]));//explode file name from dot(.)
$file_extension = end($ext); //store extensions in the variable
$target_path = $target_path . md5(uniqid()) . "." . $ext[count($ext) - 1];//set the target path with a new name of image
$j = $j + 1;//increment the number of uploaded images according to the files in array
if (($_FILES["file"]["size"][$i] < 100000) //Approx. 100kb files can be uploaded.
&& in_array($file_extension, $validextensions)) {
if (move_uploaded_file($_FILES['file']['tmp_name'][$i], $target_path)) {//if file moved to uploads folder
//echo $j. ').<span id="noerror">Image uploaded successfully!.</span><br/><br/>';
$file_name_all.=$target_path."*";
$filepath = rtrim($file_name_all, '*');
//echo $filepath;
$officeid = $_GET['id'];
$sql = "UPDATE register_office SET offimage='$filepath' WHERE id='$officeid' ";
if (!mysqli_query($con,$sql))
{
die('Error: ' . mysqli_error($con));
}
} else {//if file was not moved.
echo $j. ').<span id="error">please try again!.</span><br/><br/>';
}
} else {//if file size and file type was incorrect.
echo $j. ').<span id="error">***Invalid file Size or Type***</span><br/><br/>';
}
}
header("Location: co_request_sent.php ");
}
mysqli_close($con);
?>
Che ne dici di creare un'altra tabella con l'indice di padre e quindi memorizzare le immagini lì? –
@Anand Ghaywankar conserva ancora tutto il percorso dell'immagine in una colonna – Sam
Come verrà memorizzato in One Col? Una tabella di diff avrà col come ID , parent_id, img_path e avrà hasMany relation con parent_table. Tutto ciò che devi mantenere l'id della tabella padre nella tabella immagini –