Il vous arrive souvent de vouloir uploader un fichier sur votre serveur grâce a un formulaire. Nous vous apportons aujourd’hui une solution simple a adapté dans vos pages. il s’agit d’un script php à placer dans le code de traitement de votre formulaire.

Ouvrez un éditeur de texte et collez le code suivant dessus. Pensez à enregistrer le fichier sous le nom suivant : uploadImage.php

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
<?php
function get_extension($nom) {
$nom = explode(".", $nom);
$nb = count($nom);
return strtolower($nom[$nb-1]);
}
$sortie=false;
$extensions_ok = array('jpg','jpeg','png');
$typeimages_ok = array(2,3);
$taille_ko = 3072;
$taille_max = $taille_ko*3072;
$dest_dossier = 'images/'; //nom du dossier ou vous allez stocké vos images
$dest_fichier="";

//**************************************
if(!$getimagesize = getimagesize($_FILES['photo']['tmp_name'])) {
$erreurs[] = "Le fichier n'est pas une image valide.";
}
//*******************************
else {
if( (!in_array( get_extension($_FILES['photo']['name']), $extensions_ok ))or (!in_array($getimagesize[2], $typeimages_ok )))
{
$erreurs[] = 'Veuillez sélectionner un fichier de type Jpeg ou Png !';
}
else{
//******************************
// on vérifie le poids de l'image
if( file_exists($_FILES['photo']['tmp_name']) and filesize($_FILES['photo']['tmp_name']) > $taille_max)
{
$erreurs[] = "Votre fichier doit faire moins de $taille_ko Ko !";
}
else{

$dest_fichier = basename($_FILES['photo']['name']);
$dest_fichier = strtr($dest_fichier, 'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ', 'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
// un chtit regex pour remplacer tous ce qui n'est ni chiffre ni lettre par "_"
$dest_fichier = preg_replace('/([^.a-z0-9]+)/i', '_', $dest_fichier);
// pour ne pas écraser un fichier existant
$dossier=$dest_dossier;
while(file_exists($dossier . $dest_fichier)) {
$dest_fichier = rand().$dest_fichier;

}
//********************************
if(move_uploaded_file($_FILES['photo']['tmp_name'], $dossier . $dest_fichier)) {
$valid[] = "Image uploadé avec succés (<a href='".$dossier . $dest_fichier."'>Voir</a>)";
}
else {
$erreurs[] = "Impossible d'uploader le fichier.<br />Veuillez vérifier que le dossier ".$dossier ;
}
}
}
}

if(@$erreurs[0]!=""){
print("<div class="erreurFormulaire">
<div class="
erreurEntete"> un probleme est survenu lors de l'upload de l'image</div><div class="erreurMessage"> ");

for($i=0;$i<5;$i++){
if($erreurs[$i]=="")
break;
else echo "<li>".$erreurs[$i]."</li>"; $sortie=true;}
print(" </div></div>");
}
?>

Créer un deuxième fichier que vous nommerez index.php. Nous allons implémenter un exemple entier.

1- Création du formulaire

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<!DOCTYPE HTML>
<html>
<head><title> upload de fichier</title>
</head>
<body>
<form method="POST" name="formulaire" enctype="multipart/form-data">

<div><h5> Ins&eacute;rer une image </h5>

<input type="file" name="photo" id="photo" /> </div>

<div><input type="submit" class="btn" value="envoyer" /></div>
<input type="hidden" value="b" name="env"/>
</form>

</body>
</html>

Ce code permettra d’afficher un formulaire avec un champ qui permet d’uploader les fichiers à partir de notre machine.

enctype= »multipart/form-data » active la fonction d’upload du formulaire.

Après cela, il nous faudra implémenter le code de traitement des informations du formulaire. Pour cela,  nous allons ecrire ce code tout en haut de notre fichier index.php

2- traitement du formulaire

1
2
<?php
if(isset($_POST["env"])){ 

on vérifie d’abord si le formulaire à été validé grâce a bouton. ensuite on récupère les infos de l’images comme suit

1
 $logo=$_FILES['photo']['name'];

$logo récupère le nom de l’image. On vérifi si le $logo n’est pas vide. Car si c’est le cas ca veut dire qu’on a rien fait. Dans le cas contraire, il contiendra une information qui nous permettra de faire appel à notre code d’upload qui est uploadImage.php

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
if ($logo != "") {

require "uploadImage.php";
if ( $sortie == false ) {

$logo = $dest_dossier . $dest_fichier;

}
else { $logo="notdid"; }
}
if($logo != "notdid" ) {
echo "upload reussi!!!";

}
else{
echo "Echec. On recommence!!!";
}
}

?>

3- Code complet de la page Index.php

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
<?php
if(isset($_POST["env"])){
$logo=$_FILES['photo']['name'];

if($logo!=""){
require "uploadImage.php";
if($sortie==false){$logo=$dest_dossier . $dest_fichier;}
else {$logo="notdid";}
}
if($logo!="notdid"){
echo "upload reussi!!!";

}
else{
echo"recommence!!!";
}
}

?>
<!DOCTYPE HTML>
<html>
<head><title> upload de fichier</title>
</head>
<body>
<form method="POST" name="formulaire" enctype="multipart/form-data">

<div><h5> Ins&eacute;rer une image </h5> <input type="file" name="photo" id="photo" /> </div>

<div><input type="submit" class="btn" value="envoyer" /></div>
<input type="hidden" value="b" name="env"/>
</form>

</body>
</html>

 

Pensez à créer un dossier « images » qui réceptionnera vos images ainsi uploader. Au final, vous devriez avoir

  1. index.php
  2. uploadImage.php
  3. un dossier images