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 ?
As tu essayer dans ton script php de renvoyer le tableau de reponse en json ? json_encode