簡體   English   中英

在MySQL DB上按目標文件夾存儲多個上傳

[英]Store multiple uploads by destination folder on MySQL DB

我看到了一堆與我的問題類似但又不完全相同的問題,以某種方式,我將不得不更改當前在DB上存儲文件的方式。

我在第一個文件(getPic.php)上有以下表格:

<form enctype="multipart/form-data" method="POST" action="sendPics.php">
        <font size=4 color=DarkBlue><b>Choose 5 photos of your pet:</b></font><br><br>
    <input type="file" name="file[]" multiple="multiple" /><br><br>
    <input name="send" type="submit" value="Upload photos">

與此相關的其他內容(sendPics.php)

$directory = "Images/";

if(!is_dir($directory)){ 
    echo "Folder does not exist";
}else{
    $file = isset($_FILES['file']) ? $_FILES['file'] : FALSE;
    for ($control = 0; $control < count($file['name']); $control++){

        $destiny = $directory."/".$file['name'][$control];
        if(move_uploaded_file($file['tmp_name'][$control], $destiny)){
            echo "Upload successful<br>"; 
        }else{
            echo "Error uploading the file";
        }   
    }
}

$destiny = "/".$destiny; 

我在MySQL中的表如下所示:

Field           | Type       
----------------+------------
 idPetsPics     | int(11)    
 linkProfilePic | varchar(60)
 linkPhoto1     | varchar(60)
 linkPhoto2     | varchar(60)
 linkPhoto3     | varchar(60)
 linkPhoto4     | varchar(60)
 Pet_idPet      | int(11)      //(FK with PetsID on Pet's table)

因此,我需要存儲上傳照片的路徑。 目前,我只能將第一個存儲在DB上,盡管所有5張照片都已成功到達目標文件夾。 現在,我有:

$petID = $_SESSION['petID']; // obtained from a third file (queries to insert date into Pet)
require_once('dbConnection.php');


$insertPetPic = "INSERT INTO petPic (idPetsPics, linkProfilePic, Pet_idPet) VALUES (NULL, '$destiny', $petID[0])";
mysqli_query($conn, $insertFotoPet);

如何更改代碼以存儲所有5條路徑?

對於成功移動的每個圖像,您需要將圖像的路徑存儲在某個位置,例如在$paths數組中:

$directory = "Images/";
$paths = array();

if(!is_dir($directory)){ 
    echo "Folder does not exist";
}else{
    $file = isset($_FILES['file']) ? $_FILES['file'] : FALSE;
    for ($control = 0; $control < count($file['name']); $control++){

        $destiny = $directory."/".$file['name'][$control];
        if(move_uploaded_file($file['tmp_name'][$control], $destiny)){
            $paths[] = $destiny;
            echo "Upload successful<br>"; 
        }else{
            echo "Error uploading the file";
        }   
    }
}

然后在查詢中使用數組中的路徑:

$insertPetPic = "INSERT INTO petPic (idPetsPics, linkProfilePic, linkPhoto1, linkPhoto2, linkPhoto3, linkPhoto4, Pet_idPet) VALUES (NULL, '$paths[0]', '$paths[1]', '$paths[2]', '$paths[3]', '$paths[4]', $petID[0])";

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM