• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Image file upload - unikalne nazwy plików

0 głosów
530 wizyt
pytanie zadane 29 marca 2021 w PHP przez dee Początkujący (360 p.)

Witam. Potrzebuje zaimplementować na stronę skrypt znaleziony w Internecie 
https://www.positronx.io/php-multiple-files-images-upload-in-mysql-database/

<?php 
    // Database
    include 'config/database.php'; 

    if(isset($_POST['submit'])){
        
        $uploadsDir = "uploads/";
        $allowedFileType = array('jpg','png','jpeg');
        
        // Velidate if files exist
        if (!empty(array_filter($_FILES['fileUpload']['name']))) {
            
            // Loop through file items
            foreach($_FILES['fileUpload']['name'] as $id=>$val){
                // Get files upload path
                $fileName        = $_FILES['fileUpload']['name'][$id];
                $tempLocation    = $_FILES['fileUpload']['tmp_name'][$id];
                $targetFilePath  = $uploadsDir . $fileName;
                $fileType        = strtolower(pathinfo($targetFilePath, PATHINFO_EXTENSION));
                $uploadDate      = date('Y-m-d H:i:s');
                $uploadOk = 1;

                if(in_array($fileType, $allowedFileType)){
                        if(move_uploaded_file($tempLocation, $targetFilePath)){
                            $sqlVal = "('".$fileName."', '".$uploadDate."')";
                        } else {
                            $response = array(
                                "status" => "alert-danger",
                                "message" => "File coud not be uploaded."
                            );
                        }
                    
                } else {
                    $response = array(
                        "status" => "alert-danger",
                        "message" => "Only .jpg, .jpeg and .png file formats allowed."
                    );
                }
                // Add into MySQL database
                if(!empty($sqlVal)) {
                    $insert = $conn->query("INSERT INTO user (images, date_time) VALUES $sqlVal");
                    if($insert) {
                        $response = array(
                            "status" => "alert-success",
                            "message" => "Files successfully uploaded."
                        );
                    } else {
                        $response = array(
                            "status" => "alert-danger",
                            "message" => "Files coudn't be uploaded due to database error."
                        );
                    }
                }
            }

        } else {
            // Error
            $response = array(
                "status" => "alert-danger",
                "message" => "Please select a file to upload."
            );
        }
    } 
?>


Skrypt działa ale chciałbym żeby nazwy plików oraz nazwy zapisywane w bazie były unikalne, Coś tam próbowałem zmieniać ale mój poziom wiedzy na temat php nie jest wystarczający żeby to ogarnąć 

2 odpowiedzi

+2 głosów
odpowiedź 29 marca 2021 przez Michał Kazula Pasjonat (19,520 p.)
Daj w nazwie pliku po prostu ' time() . "_" . $id '. Zwróci Ci timestamp i dopiszesz id. Albo zawsze możesz zrobić md5, crypt lub hash :-) Z nawy pliku. Nie powinno być powtórzeń.
komentarz 29 marca 2021 przez dee Początkujący (360 p.)
Dziękuje za odpowiedz. Probowałem tak robić ale po dodaniu zmian przestaje zapisywać informacji do bazy oran nie uploaduje pliku
+1 głos
odpowiedź 29 marca 2021 przez laiklynn.amaia Obywatel (1,060 p.)
Proponuję po prostu zastosować UUID i finito.

Podobne pytania

0 głosów
0 odpowiedzi 283 wizyt
pytanie zadane 11 lutego 2018 w PHP przez mi-20 Stary wyjadacz (13,250 p.)
0 głosów
0 odpowiedzi 283 wizyt
pytanie zadane 27 listopada 2017 w PHP przez mi-20 Stary wyjadacz (13,250 p.)
0 głosów
0 odpowiedzi 332 wizyt
pytanie zadane 1 listopada 2017 w PHP przez niezalogowany

93,772 zapytań

142,730 odpowiedzi

323,382 komentarzy

63,368 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Twierdza Linux. Bezpieczeństwo dla dociekliwych

Aby uzyskać rabat -10%, użyjcie kodu pasja-linux, wpisując go w specjalne pole w koszyku.

...