Bonjour, je cherche à faire un upload de fichier avec affichage de la photo, en AJAX

Avec mon code tout fonctionne bien, ça change bien dans la base de données et tout, mais une chose ne fonctionne pas !

Et c'est la plus importante, le move_uploaded_file();...

Mon code :

<form method="POST" enctype="multipart/form-data" id="change_avatar">
<p><input type="file" name="avatar" id="avatar" class="form-control"></p>
<p><input type="submit" value="Changer ma photo de profil" class="ui button"></p>
</form>

$("#change_avatar").submit(function(e){
  e.preventDefault();

  $("#loader").show();
  $(".bar").css('width','0%');
  $(".bar").animate({width : '100%'},1000);
  fakepath = $("#avatar").val().split("\\");
  avatar = fakepath[2];
  modif.hide();
  profil.show();
  $.post('avatar.php',{ avatar : avatar }, function(a){
    loader.hide();
    $("#img_user").hide('slow', function(){
      $("#img_user").attr('src','/avatars/' + avatar);
    });

    $("#img_user").show('slow');

  })
})

avatar.php :

<?php
session_start();
include 'config.php';

$avatar = $_POST'avatar'];
$extension = strrchr($avatar,'.');
$file = $_SESSION'pseudo'];
$nom = "avatars/".$avatar;
move_uploaded_file($_POST'avatar'],$nom);

$bdd = new PDO('mysql:host='.$host.';dbname='.$db, $db_user, $db_password);
$req = $bdd->prepare('UPDATE users SET avatar = :avatar WHERE username = :username');
$req->execute(array(
    'username' => $_SESSION'pseudo'],
    'avatar' => $nom
));
?>

Ma question est la suivante : Comment récupérer le $_FILES'avatar']'tmp_name'] en AJAX ?

3 réponses


As tu essayer dans ton script php de renvoyer le tableau de reponse en json ? json_encode

Outch, ça je ne sais absolument pas faire... x)