Upload de fichiers en php

azerty -  
X-Fan Messages postés 805 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour à tous,

SVP pouvez-vous m'aider avec un code PHP pour faire un upload de fichier (image) et le mettre dans un repertoire bien precis?

j'ai lu la façon de le faire mais je n'arrive pas à l'appliquer avec succes, donc un exemple de code qui marche serait genial!! (en indiquant exactement comment connaitre le nom du fichier, la taille, ...)

merci d'avance.
A voir également:

2 réponses

Nico_ Messages postés 1219 Date d'inscription   Statut Membre Dernière intervention   189
 
bonsoir,
code page formulaire:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>envoyer sur le serveur</title>
</head>

<body>
<form method="POST" action="upload.php" enctype="multipart/form-data">
     <!-- On limite le fichier à 100Ko -->
     <input type="hidden" name="MAX_FILE_SIZE" value="100000">
     Fichier : <input type="file" name="avatar">
     <input type="submit" name="envoyer" value="Envoyer le fichier">
</form>
</body>
</html>

code de la page de traitement: upload.php
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>envoyer sur le serveur</title>
</head>

<body>

<?php
$dossier = 'upload/'; //upload = dossier de stockage de l'image en chmod 777
$fichier = basename($_FILES['avatar']['name']);
$taille_maxi = 100000;
$taille = filesize($_FILES['avatar']['tmp_name']);
$extensions = array('.png', '.gif', '.jpg', '.jpeg');
$extension = strrchr($_FILES['avatar']['name'], '.'); 
//Début des vérifications de sécurité...
if(!in_array($extension, $extensions)) //Si l'extension n'est pas dans le tableau
{
     $erreur = 'Vous devez uploader un fichier de type png, gif, jpg, jpeg, txt ou doc...';
}
if($taille>$taille_maxi)
{
     $erreur = 'Le fichier est trop gros...';
}
if(!isset($erreur)) //S'il n'y a pas d'erreur, on upload
{
     //On formate le nom du fichier ici...
     $fichier = strtr($fichier, 
          'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ', 
          'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
     $fichier = preg_replace('/([^.a-z0-9]+)/i', '-', $fichier);
     if(move_uploaded_file($_FILES['avatar']['tmp_name'], $dossier . $fichier)) //Si la fonction renvoie TRUE, c'est que ça a fonctionné...
     {
          echo 'Upload effectué avec succès !';
     }
     else //Sinon (la fonction renvoie FALSE).
     {
          echo 'Echec de l\'upload !';
     }
}
else
{
     echo $erreur;
}
?>

</body>
</html>

Bonne soirée
1
X-Fan Messages postés 805 Date d'inscription   Statut Membre Dernière intervention   24
 
Ça marche impec celui là:
http://www.webdeveloper.com/forum/showthread.php?t=101466
1