Je souhaite pouvoir télécharger des fichiers à l'aide d'AJAX.Téléchargement de fichiers via AJAX
J'ai essayé d'utiliser (JavaScript):
$("input[type='file']").change(function(){
var file = document.getElementById("uploadelement").files[0];
$.ajax({
url: "upload.php",
type: "POST",
beforeSend: function(xhr){
xhr.setRequestHeader("X_FILENAME", file.name);
},
success: function(data){
console.log(data);
}
});
});
Avec (PHP):
<?php
$fn = (isset($_SERVER['HTTP_X_FILENAME']) ? $_SERVER['HTTP_X_FILENAME'] : false);
if ($fn) {
// AJAX call
file_put_contents(
'uploads/' . $fn,
file_get_contents('php://input')
);
echo "$fn uploaded";
exit();
}
?>
Cependant, je vais avoir la question, que le contenu des fichiers est pas présenté . Je ne suis pas sûr que ce qui ne va pas. J'ai trouvé ce code sur un tutorial alors j'ai pensé que ça devrait marcher.
Le fichier est téléchargé dans le dossier mais il n'y a pas de contenu.
Vous n'envoyez pas le fichier, c'est assez clair après avoir regardé votre code client. –
Avez-vous essayé 'document.getElementById (" uploadelement "). Fichiers;' au lieu de 'document.getElementById (" uploadelement "). Fichiers [0];'? Les crochets '[]' sont généralement utilisés pour plusieurs téléchargements. Peut-être le problème, mais je ne pouvais pas être sûr à 100%. –
@Fred 'document.getElementById (" uploadelement "). Files' retourne juste un tableau. – Shawn31313