Upload en php ajax instantanément
                    
        
     
             
                    uahinsi
    
        
    
                    Messages postés
            
                
     
             
            1
        
            
                                    Statut
            Membre
                    
                -
                                     
jordane45 Messages postés 40050 Statut Modérateur -
        jordane45 Messages postés 40050 Statut Modérateur -
        bonjour. j'ai un problème dont après plusieurs recherche j'ai plus le choix que vous.
je veut uploader un fichier type='file' et l'enregistrer dans un dossier et dans une bdd avec son textarea et d'autres information sur la personne qui a publier. je veut le faire instantanément sans recharger ma page web donc ajax est le mieux placer pour ça,
si je le fait sans ajax tout marche bien mais si je le fait avec ajax rien ne marche ni dans la bdd ni dans le dossier d'image. pourtant j'ai besoin d'ajax pour ne pas recharger ma page.
publication.php:
publication_add.php
EDIT : Ajout des balises de code
                
            
                
    
    
    
        je veut uploader un fichier type='file' et l'enregistrer dans un dossier et dans une bdd avec son textarea et d'autres information sur la personne qui a publier. je veut le faire instantanément sans recharger ma page web donc ajax est le mieux placer pour ça,
si je le fait sans ajax tout marche bien mais si je le fait avec ajax rien ne marche ni dans la bdd ni dans le dossier d'image. pourtant j'ai besoin d'ajax pour ne pas recharger ma page.
publication.php:
<form method="post" action="" id="pub_form" enctype="multipart/form-data">
  <input type="file" name="photo_pub" id="photo_pub">
  <textarea rows="15" id="legend_photo_video" name="legend_photo_video"></textarea>
  <input type="submit" name="submit" id="submit" value="Publier">
</form>
<div id="pub_message"></div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script>
    $(document).ready(function(){
        $('#pub_form').on('submit', function(event){
        event.preventDefault();
            var form_data = $(this).serialize();
            $.ajax({
                url : "publication_add.php",
                method : "POST",
                data : form_data,
                dataType : "JSON",
                success : function(data)
                {
                    if (data.error != '') {
                        $('#pub_form')[0].reset();
                        $('#pub_message').html(data.error);
                        load_comment();
                    }
                }
            })
        });
    });
</script>
publication_add.php
<?php
    if (session_status() == PHP_SESSION_NONE) {
        session_start();
    }
    require_once'inc/functions.php';
$pdo = new PDO('mysql:host=localhost;dbname=comment', 'root', '');
    if (isset($_SESSION['auth']->id_user) AND $_SESSION['auth']->id_user > 0) {
        $iduser = intval($_SESSION['auth']->id_user);//on a creer a variable pour l'id de l'utilisateur
        $req = $pdo->prepare('SELECT id_user, nom_user, prenom_user, domaine_user, avatar_user FROM users WHERE id_user = ?');
        $req->execute(array($iduser));
        $infouser = $req->fetch();
  
        $error = '';
          
        if (isset($_FILES['photo_pub'])){
            $legend_photo = htmlspecialchars($_POST['legend_photo_video']);
            $taillephotomax = 2000000;
            $extensionphotovalide = array('png', 'jpg', 'jpeg', 'gif', 'ico', 'bmp', 'tiff', 'tif', 'svg');
            if ($_FILES['photo_pub']['size'] <=$taillephotomax) {
                $extensionphotoupload = strtolower(substr(strrchr($_FILES['photo_pub']['name'], '.'), 1));
                $cheminphoto = "image/photovideopublier/" .$_SESSION['auth']->id_user."_photo".$infouser->nom_user."." .$extensionphotoupload;
                $resultatphoto = move_uploaded_file($_FILES['photo_pub']['tmp_name'], $cheminphoto);
                if (in_array($extensionphotoupload, $extensionphotovalide)) {
                    $req = $pdo->prepare('INSERT INTO publication (id_user_auteur, prenom_user_auteur, nom_user_auteur, avatar_user_auteur, domaine_user_auteur, nom_pub, legend_pub, date_time_pub) VALUES (?, ?, ?, ?, ?, ?, ?, NOW())');
                    $req->execute(array($infouser->id_user, $infouser->prenom_user, $infouser->nom_user, $infouser->avatar_user, $infouser->domaine_user, $_SESSION['auth']->id_user.'_photo_'.$infouser->nom_user.'.'.$extensionphotoupload, $legend_photo));
                }
                else{
                    //
                }
            }
            else{
                //
            }
        }
    }
    $data = array('error' => $error);
    echo json_encode($data);
?>
EDIT : Ajout des balises de code
        A voir également:         
- Upload en php ajax instantanément
- Upload video youtube - Télécharger - Diffusion
- Easy php - Télécharger - Divers Web & Internet
- Expert php pinterest - Télécharger - Langages
- Commun file upload pattern ✓ - Forum Réseaux sociaux
- Fourtoutici upload - Forum Imprimante
1 réponse
                        
                    Bonjour,
Commence par ajouter le "error" dans ton ajax
Puis active la gestion des erreurs PDOhttps://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs
Et l'affichage des erreurs php:
https://forums.commentcamarche.net/forum/affich-37584947-php-gestion-des-erreurs-debogage-et-ecriture-du-code
regardes ensuite dans la console de ton navigateur si il n'y a pas de choses qui s'affichent et si ta requête ajax s'exécute correctement ( pour ça, je te conseille d'utiliser la console de firefox ou d'installer, pour chrome, le plugin ajax debuger )
NB: A l'avenir, pour poster ton code, merci de le faire en utilisant les balises de code
explications disponibles ici :
https://codes-sources.commentcamarche.net/faq/11288-poster-un-extrait-de-code
.
 
                
                
    
                Commence par ajouter le "error" dans ton ajax
error: function (error) {
    alert('error ');
   console.log(error);
}
 
Puis active la gestion des erreurs PDOhttps://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs
Et l'affichage des erreurs php:
https://forums.commentcamarche.net/forum/affich-37584947-php-gestion-des-erreurs-debogage-et-ecriture-du-code
regardes ensuite dans la console de ton navigateur si il n'y a pas de choses qui s'affichent et si ta requête ajax s'exécute correctement ( pour ça, je te conseille d'utiliser la console de firefox ou d'installer, pour chrome, le plugin ajax debuger )
NB: A l'avenir, pour poster ton code, merci de le faire en utilisant les balises de code
explications disponibles ici :
https://codes-sources.commentcamarche.net/faq/11288-poster-un-extrait-de-code
.
