8721 sujets

Développement web côté serveur, CMS

Bonjour,

J'ai un problème j'ai un formulaire sur mon site wordpress pour que les gens puissent ajouter un compte rendu de reunion avec le nom de la reunion et un fichier pdf a ajouter.

J'ai creer un dossier uploads ($target_dir dans mon code) où vont etre stockés les fichiers pdf que l'utilisateur a rentrer dans mon formulaire, l'insertion dans ce dossier marche avec le code suivant.

function shortcode_pv_reunion(){
        global $wpdb;
 
        echo '<form method="post" enctype="multipart/form-data">';
            echo '<input type="text" name="name_pdf" id="namePdf" placeholder="Entrer le nom de la réunion" required>';
            echo '<br/>';
            echo '<br/>';
            echo '<input type="file" name="add_pdf" id="addPdf" value="Ajouter un pdf" required>';
            echo '<br/>';
            echo '<input type="submit" name="send_pdf" id="sendPdf" value="Envoyer">';
        echo'</form>';
 
        echo'<br/>';
 
        if(isset($_POST['send_pdf'])) {
            $wpdb->insert(
                'wp_pv_reunion',
                array(
                    'nom_reunion' => $_POST['name_pdf'], //insert nom reunion
                    'pdf_reunion' => $_POST['add_pdf'] //insert pdf reunion
                ));
 
 
        $target_dir = "wp-content/themes/busiprof/uploads/";
        $target_file = $target_dir . basename($_FILES["add_pdf"]["name"]);
        $uploadOk = 1;
        $imageFileType = strtolower(pathinfo($target_file,PATHINFO_EXTENSION));
 
 
            if ( file_exists($target_file) ) {
                echo "Désolé le fichier existe déjà <br/>";
                $uploadOk = 0;
            }
// Check file size
            if ( $_FILES["add_pdf"]["size"] > 500000 ) {
                echo "Désolé votre fichier est trop lourd <br/>";
                $uploadOk = 0;
            }
// Allow certain file formats
            if ( $imageFileType != "pdf" ) {
                echo "Désolé, uniquement les pdfs sont autorisés <br/>";
                $uploadOk = 0;
            }
 
            // Check if $uploadOk is set to 0 by an error
            if ( $uploadOk == 0 ) {
                echo "Désolé, votre fichier n'a pas été téléchargé <br/>";
                // if everything is ok, try to upload file
            } else {
                if ( move_uploaded_file($_FILES["add_pdf"]["tmp_name"], $target_file) ) {
                    echo "Le fichier " . basename($_FILES["add_pdf"]["name"]) . " a bien été téléchargé <br/>";
                } else {
                    echo "Désolé il y a un problème avec votre fichier <br/>";
                }
            }
        }
 
 
 
    }
    add_shortcode('pdf_reunion','shortcode_pv_reunion');


Quand j'enleve le enctype="multipart/form-data" l'insertion dans ma base de données marche mais pas l'insertion sur mon serveur, mais quand je le laisse impossible d'ajouter a ma BDD alors que l'insertion sur mon serveur fonctionne.

Quand il y a "enctype" j'ai l'erreur suivante : la valeur de mon file (pdf) est null

INSERT INTO `wp_pv_reunion` (`nom_reunion`, `pdf_reunion`) VALUES ('test', NULL)

Je ne sais pas comment faire pour faire l'insertion des deux côtés et j'en ai vraiment besoin merci Smiley smile