IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

isset($_files['image']) toujours vide


Sujet :

PHP & Base de données

  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2018
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2018
    Messages : 15
    Par défaut isset($_files['image']) toujours vide
    Bonsoir

    Voila mon code:

    index.php

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    <form method="post"  enctype="multipart/form-data">
     
     <div class="form-group">
                    <label for="m11">upload :</label>
                    <input type="file" id="pdf_upload"  accept="image/*"  name="image" class="form-control"    style="height:40px;font-size:15px;color:#000000" required>
                   <div class="help-block with-errors"></div>
                  </div>
                  <input type="submit" name="button_action" id="button_action" class="btn btn-success btn-sm" style="font-weight:bold" value="Add" />
    </form>
    <script>
                $.ajax({
                    url:"ajax_action.php",
                    method:"POST",
                    data:$(this).serialize(),
                    dataType:"json",
                    beforeSend:function(){
                     
                    },
                    success:function(data)
                    {
                        if(data.success)
                        {
                                            Swal.fire({
                                          title: "true",
                                          icon: "success",
                                          text: " ",
                                            showConfirmButton: false,
                                            timer: 1500
                                           
                                        });
                        }
                       else
                       {
                            Swal.fire({
                                          title: "false",
                                          icon: "error",
                                          text: " ",
                                            showConfirmButton: false,
                                            timer: 1500
                                           
                                        });
                       }
                    }
                });
        </script>


    ajax_action.php



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    <?php
     
           if (isset($_FILES['image']) ) {
        $title = trim($_POST['title']);
     
        // File metadata
        $file = $_FILES['image'];
        $fileName = $file['name'];
        $fileTmpName = $file['tmp_name'];
        $fileError = $file['error'];
        $fileSize = $file['size'];
     
        // Define allowed extensions and MIME types for safety
        $allowedExtensions = ['jpg', 'jpeg', 'png', 'webp'];
        $fileExt = strtolower(pathinfo($fileName, PATHINFO_EXTENSION));
     
        // Basic Validation
        if ($fileError !== 0) {
            die("Error uploading file.");
        }
     
        if (!in_array($fileExt, $allowedExtensions)) {
            die("Invalid file type. Only JPG, JPEG, PNG, and WEBP are allowed.");
        }
     
        if ($fileSize > 5 * 1024 * 1024) { // 5MB Limit
            die("File is too large. Maximum size is 5MB.");
        }
     
        // Generate a unique file name to prevent overriding existing files
        $newFileName = uniqid('IMG_', true) . '.' . $fileExt;
        $uploadFolder = 'pdf/';
        $targetFilePath = $uploadFolder . $newFileName;
     
        // 3. Move the file to the target directory and update the database
        if (move_uploaded_file($fileTmpName, $targetFilePath)) {
     
                  $exam->data = array(
                    ':id'               =>   $_SESSION['user_id'],
     
                    ':filename' =>    $fileName
     
     
                );
     
                    $exam->query = "
                INSERT INTO tableimages                                  
                (id,filename)
                 
                VALUES (:id,:filename)
                ";
     
                $exam->execute_query();
     
     
                $output = array(
                    'success'   =>   'add'
                );
     
                echo json_encode($output);
     
     
             }
            else
     
                {
                        $output = array(
                    'er'    =>   'no add'
                    );
     
                   echo json_encode($output);
     
                }
     
     
            }
    ?>
    tant quand click sur button " add " , ne peut pas ajouter dans une BDD puisque la fonction isset($_files['image']) toujours vide

  2. #2
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 261
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 261
    Par défaut
    Bonjour,
    ton script $ajax est exécuté au chargement de la page donc l'<input name="image"> n'est pas encore initialisé, donc vide.

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2018
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2018
    Messages : 15
    Par défaut
    ou la solution ??

  4. #4
    Expert confirmé
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 725
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 725
    Par défaut
    Citation Envoyé par zanki Voir le message
    ou la solution ??
    le début de la solution serait de nous expliquer ce que vous souhaitez. parce que là je ne comprends pas, vous avez une 1re partie avec un formulaire sans "action" et une 2e partie avec une requête http qui n'envoie pas d'information comme l'a indiqué NoSmoking.

Discussions similaires

  1. [Débutant] Picturebox.image toujours vide meme quand je dessine dans picturebox
    Par idontgetacp dans le forum VB.NET
    Réponses: 6
    Dernier message: 28/07/2014, 15h28
  2. [DOM] org.w3c.dom.Document toujours vide
    Par LGnord dans le forum Format d'échange (XML, JSON...)
    Réponses: 1
    Dernier message: 05/12/2007, 13h45
  3. [AJAX] IE7, responseXML toujours vide
    Par Morphinof dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 08/10/2007, 18h25
  4. Image toujours en haut
    Par mickeliette dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 18/11/2005, 12h27
  5. [D7][Oracle 8i] DBGrid toujours vide
    Par Magnus dans le forum Bases de données
    Réponses: 7
    Dernier message: 05/10/2005, 08h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo