par

Comment faire pour uploader un fichier en Ajax et PHP avec jQuery ?

<form>
<input type="text" name="text" id="text">
<input type="file" name="files" id="files">
<button type="input" onclick="envoyer()">Envoyer</button>
</form>

1 Réponse

+1 validé
par

Pour uploader un fichier en Ajax et PHP avec jQuery, vous devez :

Fichier HTML :

<!DOCTYPE html> 
<html> 
<head>
<meta charset="UTF-8">
<title>Comment modifier l'attribut style en JavaScript ?</title>
</head>
<body>
<form id="form">
<input type="text" name="text" id="text">
<input type="file" name="files" id="files">
<button type="input" onclick="envoyer()">Envoyer</button>
</form>
<script src="https://code.jquery.com/jquery-3.3.1.min.js"></script>
<script>
function envoyer(){
	event.preventDefault();
	if ((document.getElementById("text").value != "") && (document.getElementById("files").value != ""))
	{
	var form = $('#form')[0];
	var data = new FormData(form);
	data.append("text", document.getElementById("text").value);	
	$.ajax({	
		url : 'fichier.php',
		type : 'POST',
		enctype: 'multipart/form-data',
		data: data,
		processData: false,
		contentType: false,
		cache: false,
		timeout: 600000,
		success : function(reponse){
			alert(reponse);
		}
	});
	}
}
</script> 
</body>
</html>

Dans cet exemple on envoie le fichier dans un répertoire nommé upload.
N'oubliez pas d'attribuer les droits au répertoire (CHMOD 755).
On fixe ensuite le nom du fichier dans une variable nommée $files.

Fichier fichier.php :

<?php
error_reporting(E_ALL & ~E_DEPRECATED);
ini_set("display_errors", 0);
$statut = 0;
$reponse = "";

if ((isset($_POST["text"])) && (isset($_FILES["files"])))
{
	if ($_FILES["files"]["error"] != 4)
	{
		$target_dir = "upload/";
		$target_file = $target_dir . basename($_FILES["files"]["name"]);
		$image_file_type = pathinfo($target_file,PATHINFO_EXTENSION);
		$statut = 1;
		
		if ($statut == 0)
		{
			$reponse .= "Le fichier ne peut pas être envoyé";
		}
		else
		{
			$files = "nomdufichier";
			if (move_uploaded_file($_FILES["files"]["tmp_name"], "".$target_dir."".$files.".".$image_file_type.""))
			{
				$reponse .= "Le document a été envoyé avec succès";
			}
			else
			{
				$reponse .= "Le fichier n'a pas été envoyé";
			}
		}
	}
}
echo $reponse;
?>

Vous pouvez par ailleurs vérifier la taille du fichier à uploader comme ceci :

if ($_FILES["files"]["size"] > 50000000)
{
//...
}

Ou encore vérifier son extension comme ceci :

if ($image_file_type == "pdf" && $image_file_type == "PDF")
{
//...
}

Lecture Recommandée

Edward Snowden - Mémoires vives

"Je m'appelle Edward Joseph Snowden. Avant, je travaillais pour le gouvernement mais aujourd'hui je suis au service de tous. Il m'a fallu près de trente ans pour saisir la différence et quand j'ai compris, ça m'a valu quelques ennuis au bureau."

L'homme qui a tout risqué pour dénoncer la surveillance globale, ou l'extraordinaire histoire d'un garçon brillant qui a grandi "en ligne", d'un homme devenu espion, puis lanceur d'alerte, et, en exil, la consciencce de l'internet.

Mémoires vives est un témoignage exceptionnel, également disponible en numérique.

Sujets Connexes

Offre Sponsorisée

Ailleurs sur le Web

Questions liées

Merci pour votre visite sur 1FORMATIK.com

Un petit clic sur la pub est toujours apprécié, c'est elle qui finance le site

Bon surf

...