Se connecter avec
S'enregistrer | Connectez-vous

upload de fichier

Dernière réponse : dans Programmation
Lassé par la pub ? Créez un compte

  1. <?php // upload de fichier image
  2.  
  3.  
  4.  
  5. if( isset($_POST['upload']) ) { // si formulaire soumis
  6.  
  7. $champ = "fichier"; // le nom du champ de fichier html
  8.  
  9. $rep = "add_picture"; // le nom du répertoire de destination du fichier d'image
  10.  
  11. $test = uploadImg ($champ, $rep); // appel de la fonction de transfert
  12.  
  13. if ( $test ) echo "Transfert réussi : <img src=\"".$rep."/".$test."\">\n"; // si le transfert abouti, afficher l'image. (ou faire autre chose du nom de fichier...)
  14.  
  15. }; // fin de test
  16.  
  17.  
  18.  
  19. function msgErreur($msg) { // le message d'erreur
  20.  
  21. echo "<script language=\"javascript\">alert(\"".$msg."\");</script>\n"; // le message d'erreur dans une boite d'alert javascript
  22.  
  23. }; // fin de fonction message d'erreur
  24.  
  25.  
  26.  
  27. function uploadImg ($fichier, $rep) { // fonction de transfert d'image vers le serveur
  28.  
  29. // $fichier->nom du champ de fichier html, $rep->nom du répertoire dans lequel transférer l'image
  30.  
  31. // la fonction retourne le nom de fichier si réussite ou false
  32.  
  33. if ( !is_dir($rep) ) { // le répertoire existe t-il ?
  34.  
  35. msgErreur("Le répertoire n'existe pas !!!"); // message d'erreur
  36.  
  37. return false; // sortie de fonction erreur
  38.  
  39. }; // fin de test existance du répertoire de destination
  40.  
  41. $rep = $rep."/"; // le dossier dans lequel transférer l'image
  42.  
  43. $nom_temp = $_FILES[$fichier]['tmp_name']; // le nom du fichier temporaire
  44.  
  45. if ( !is_uploaded_file($nom_temp) ) { // vérifier si le fichier est présent
  46.  
  47. msgErreur("Le fichier est introuvable"); // message d'erreur
  48.  
  49. return false; // sortie de fonction erreur
  50.  
  51. }; // fin de test si le fichier temp est présent
  52.  
  53. $type_fichier = $_FILES[$fichier]['type']; // on vérifie maintenant l'extension
  54.  
  55. if ( !strstr($type_fichier, 'jpg') && !strstr($type_fichier, 'jpeg') && !strstr($type_fichier, 'png') && !strstr($type_fichier, 'gif') ) {
  56.  
  57. msgErreur("Le fichier n'est pas une image"); // message d'erreur
  58.  
  59. return false; // sortie de fonction erreur
  60.  
  61. }; // fin de controle de l'extention
  62.  
  63. $nom_fichier = $_FILES[$fichier]['name']; // on copie le fichier dans le dossier de destination
  64.  
  65. if ( preg_match('#[\x00-\x1F\x7F-\x9F/\\\\]#', $nom_fichier) ) { // vérifier que le nom de fichier ne contient pas de caractères suspects
  66.  
  67. msgErreur("Nom de fichier non valide"); // message d'erreur
  68.  
  69. return false; // sortie de fonction erreur
  70.  
  71. }; // fin de test faille de sécurité
  72.  
  73. // enlever les accents
  74.  
  75. $nom_fichier = strtr($nom_fichier, 'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ', 'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
  76.  
  77. // remplacer les caracteres autres que lettres, chiffres et point par "_"
  78.  
  79. $nom_fichier = preg_replace('/([^.a-z0-9]+)/i', '_', $nom_fichier);
  80.  
  81. if ( file_exists($rep . $nom_fichier) ) { // vérifier qu'il n'existe pas déjà un fichier portant ce nom
  82.  
  83. msgErreur("Un fichier portant ce nom existe déjà !!!"); // message d'erreur
  84.  
  85. return false; // sortie de fonction erreur
  86.  
  87. } else if ( !move_uploaded_file($nom_temp, $rep . $nom_fichier) ) { // transfèrer le fichier en codant les caractères spx
  88.  
  89. msgErreur("Impossible de copier le fichier dans ".$rep); // message d'erreur
  90.  
  91. return false; // sortie de fonction erreur
  92.  
  93. }; // fin de controle du transfert du fichier
  94.  
  95. return $nom_fichier; // sortie de fonction avec reussite
  96.  
  97. }; // fin de fonction uploadImg
  98.  
  99.  
  100.  
  101. ?>
  102.  
  103. <form action="upload.php" method="post" enctype="multipart/form-data" name="form1" target="_self">
  104.  
  105. <input type="file" name="fichier">
  106.  
  107. <input type="submit" name="upload" value="Envoyer">
  108.  
  109. </form>


Voici le code que jai mit pour uploader un fichier (image)
mais quand jessaye d'uploader un fichier il me dit soir erreur (comme si javais pas uploader le fichier comme il faut)
ou ifrance me dit fichier introuvable
Expert Programmation

ok....
tu connais rien en PHP quoi ?

un echo de la variable = echo $nom_temp;
Ajoute un truc que tu puisses reconnaitre, genre :
echo "ICI : ".$nom_temp;

Et quand tu lanceras le script, tu auras ICI : .... d'écrit, et faut voir si le $nom_temp est bien égal à quelque chose
Lassé par la pub ? Créez un compte
Tom's guide dans le monde