Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

UPLOAD IMAGE


Information sur la source



Description

Se script permet d’uploadé des image sur le serveur c’est utile si vous voulez crée un système d’hébergement de photo
 

Source

  • <html>
  • <head><title>Uploadez vos images!</title></head>
  • <body>
  • <?php
  • $poids_max = 512000; // Poids max de l'image en octets
  • $repertoire = 'uploads/'; // Repertoire d'upload
  • if (isset($_FILES['fichier']))
  • {
  • //On vérifie le type du fichier
  • if(!@getimagesize($_FILES['fichier']['tmp_name']))
  • {
  • $erreur = 'Vous avez tentez d\'uploader un fichier qui n\'est pas une image (*.jpeg, *.gif ou *.png).';
  • }
  • // On vérifie le poids de l'image
  • elseif ($_FILES['fichier']['size'] > $poids_max)
  • {
  • $erreur = 'L\'image dépasse le poids autorisé ' . $poids_max/1024 . 'Ko.';
  • }
  • // On vérifie si le répertoire d'upload existe
  • elseif (!file_exists($repertoire))
  • {
  • $erreur = 'Erreur, le dossier d\'uploads n\'existe pas.';
  • }
  • // Si tout est correct on peut uploader
  • if(isset($erreur))
  • {
  • echo '' . $erreur . '<br><a href="javascript:history.back(1)">Retour</a>';
  • }
  • else
  • {
  • // On définit l'extension du fichier puis on le nomme par le timestamp actuel
  • //(bon j'ai mis l'extension .jpg car je connais pas comment la récupérer si vous le connaissez veilliez me l'écrire au commentaire SVP
  • $nom_fichier = time().'.jpg';
  • // On upload le fichier sur le serveur.
  • if (move_uploaded_file($_FILES['fichier']['tmp_name'], $repertoire.$nom_fichier))
  • {
  • // remplacez le www.monsite.com par le url de votre site.
  • $url = 'www.monsite.com/'.$repertoire.''.$nom_fichier.'';
  • echo 'Votre image à été uploadée sur le serveur avec succès!<br>Voici le lien: <input type="text" value="' . $url . '" size="60">';
  • }
  • // Si il y a une erreur
  • else
  • {
  • echo 'L\'image n\'a pas pu être uploadée sur le serveur.';
  • }
  • }
  • }
  • else
  • {
  • ?>
  • <form method="post" enctype="multipart/form-data">
  • <input type="hidden" name="MAX_FILE_SIZE" value="<?php echo $poids_max; ?>">
  • <input type="file" name="fichier">
  • <input type="submit" value="Envoyer">
  • </form>
  • <?php
  • }
  • ?>
<html>
<head><title>Uploadez vos images!</title></head>
<body>

<?php
$poids_max = 512000; // Poids max de l'image en octets 
$repertoire = 'uploads/'; // Repertoire d'upload

if (isset($_FILES['fichier']))
{
   
   //On vérifie le type du fichier 
   if(!@getimagesize($_FILES['fichier']['tmp_name']))
   {
      $erreur = 'Vous avez tentez d\'uploader un fichier qui n\'est pas une image (*.jpeg, *.gif ou *.png).';
   }
   
   // On vérifie le poids de l'image
   elseif ($_FILES['fichier']['size'] > $poids_max)
   {
      $erreur = 'L\'image dépasse le poids autorisé ' . $poids_max/1024 . 'Ko.';
   }
   
   // On vérifie si le répertoire d'upload existe
   elseif (!file_exists($repertoire))
   {
      $erreur = 'Erreur, le dossier d\'uploads n\'existe pas.';     
   }
   
   // Si tout est correct on peut uploader
   if(isset($erreur))
   {
      echo '' . $erreur . '<br><a href="javascript:history.back(1)">Retour</a>';
   }
   else
   {
         
      // On définit l'extension du fichier puis on le nomme par le timestamp actuel 
      //(bon j'ai mis l'extension .jpg car je connais pas comment la récupérer si vous le connaissez veilliez me l'écrire au commentaire SVP
     
	  
      $nom_fichier = time().'.jpg';
             
      // On upload le fichier sur le serveur.
      if (move_uploaded_file($_FILES['fichier']['tmp_name'], $repertoire.$nom_fichier))
      {
	  // remplacez le www.monsite.com par le url de votre site.
         $url = 'www.monsite.com/'.$repertoire.''.$nom_fichier.'';
         echo 'Votre image à été uploadée sur le serveur avec succès!<br>Voici le lien: <input type="text" value="' . $url . '" size="60">';
      }
	  // Si il y a une erreur
      else
      {
         echo 'L\'image n\'a pas pu être uploadée sur le serveur.';
      }
     
   }
   
}
else
{
   ?>
   <form method="post" enctype="multipart/form-data">
      <input type="hidden" name="MAX_FILE_SIZE" value="<?php echo $poids_max; ?>">
      <input type="file" name="fichier">
      <input type="submit" value="Envoyer">
   </form>
   <?php
}
?>

Commentaires et avis

signaler à un administrateur
Commentaire de coucou747 le 15/05/2007 14:10:29

t'aurais au moins du en faire une fonction pour pouvoir envoyer plusieurs images en meme temps...
sinon, que dire ?

  echo '' . ....
a quoi servent les '' au debut ?

idem l48 $url = 'www.monsite.com/'.$repertoire.''.$nom_fichier.'';

signaler à un administrateur
Commentaire de neigedhiver le 15/05/2007 14:18:04

Salut,

"bon j'ai mis l'extension .jpg car je connais pas comment la récupérer si vous le connaissez veilliez me l'écrire au commentaire SVP"

=> http://www.phpinfo.net/page/archives/regex/
ereg("\.([^\.]*$)", $fichier, $elts);
echo $elts[1];

Au lieu de :
elseif (!file_exists($repertoire))

Je préfère :
elseif (!is_dir($repertoire))

is_dir() vérifie que le fichier existe et est un répertoire.

signaler à un administrateur
Commentaire de kankrelune le 15/05/2007 14:51:27

Que dire...

if(!@getimagesize($_FILES['fichier']['tmp_name']))
{
    $erreur = '...';
}

très bien mais il faut penser au restrictions du type safe mode et openbasedir... il faut aussi penser que l'entête d'une image est falsifiable... .. .

------------------------------------------

elseif ($_FILES['fichier']['size'] > $poids_max)

alors là par contre beurk beurk... l'index size est transmit via l'en tête http par le navigateur et est de ce fait facilement falsifiable... donc...

elseif(filesize($_FILES['fichier']['tmp_name']) > $poids_max)

-------------------------

if(file_exists($repertoire))

Muarf... parce que ton répertoire de stockage est un fichier... lol... comme l'a dit Neigedhiver => is_dir()... .. . ;o)

------------------------

sinon... tu ne fais pas de vérification d'erreur à l'upload via $_FILES['fichier']['error'] avant de déplacer le fichier... donc

code [constante php]     : cause

0 [UPLOAD_ERR_OK]        : pas d'erreur
1 [UPLOAD_ERR_INI_SIZE]  : Le fichier dépasse la limite autorisée par le serveur (fichier php.ini)
2 [UPLOAD_ERR_FORM_SIZE] : Le fichier dépasse la limite autorisée dans le formulaire HTML
3 [UPLOAD_ERR_PARTIAL]   : L'envoi du fichier a été interrompu pendant le transfert
4 [UPLOAD_ERR_NO_FILE]   : Le fichier que vous avez envoyé a une taille nulle

---------------------------------

Pour récupérer l'extension du fichier c'est assez simple... par contre pas d'expression rationnelle comme le dit Neigedhiver... c'est beurk beurk les expression rationnelles... .. . ;o)

$ext = substr($filename,strrpos( $filename, '.')+1);

Voili voilou... concernant le code c'est plus que bof bof je mettrais 3 principalement à cause de l'utilisation de getimagesize() qui est peut souvent utilisé par rapport à la vérification par extension... mais faut persévérer... .. .

@ tchaOo°

signaler à un administrateur
Commentaire de neigedhiver le 15/05/2007 16:32:33

@kankrelune : "$ext = substr($filename,strrpos( $filename, '.')+1);"

Effectivement, c'est plus joli... J'avais jamais réfléchi comment récupérer l'extension d'un fichier, mais j'avais mémoire de cette regexp trouvé sur phpinfo.net...
Encore une fois, merci ;)

signaler à un administrateur
Commentaire de Evangun le 15/05/2007 21:42:19

Hello, pour l'extension, à partir de php 5.2, c'est pathinfo(). à+

signaler à un administrateur
Commentaire de neigedhiver le 15/05/2007 21:54:08

En fait, pathinfo, c'est à partir de php4.0.3...

signaler à un administrateur
Commentaire de neigedhiver le 15/05/2007 21:56:23

Mince, double post...

L'inconvénient de pathinfo(), c'est que ça ne marche qu'avec un fichier qui existe physiquement sur le serveur...


pathinfo

(PHP 4 >= 4.0.3, PHP 5)

pathinfo — Retourne des informations sur un chemin système

signaler à un administrateur
Commentaire de webdeb le 16/05/2007 09:06:33

Regarde le script que j'ai fait ici pour t'inspirer et reprendre le tien : http://www.apprendre-php.com/tutoriels/tutoriel-17-uploader-des-images-sur-un-serveur-web.html

signaler à un administrateur
Commentaire de mousaid_88 le 17/05/2007 16:59:20

merci à vous tous pour vos conseils.

signaler à un administrateur
Commentaire de vinz78 le 12/06/2007 10:31:12

http://www.phpcs.com/codes/UPLOAD-IMAGE_38983.aspx c'est du copier coller ou je me trompe ?...
"Se script permet d’uploadé des image sur le serveur c’est utile si vous voulez crée un système d’hébergement de photo"

"Ce script permet d'uploader des images sur le serveur c'est utile si vous voulez
créer un système d'hébergement de photos"

signaler à un administrateur
Commentaire de Renfield le 12/06/2007 12:19:23 administrateur CS

codes très similaires, mais au final différents.

les auteurs de ces sources ont du s'inspirer du même code de départ, ensuite, chacun a ajouté ses propres spécificités à ce code.

Renfield - Admin CS

signaler à un administrateur
Commentaire de coucou747 le 12/06/2007 16:20:15

la ca tient carement du C/C...

signaler à un administrateur
Commentaire de nethacker le 01/09/2007 19:52:22

hmmm comment utiliser le meme code pour uploader des fichiers .rar

signaler à un administrateur
Commentaire de NONOVITCH le 30/04/2009 14:47:52

Bonjour,
Le sujet date mais j'ai quand même une question si une personne passe par là:
Où placer le code
"$ext = substr($filename,strrpos( $filename, '.')+1);"
pour avoir l'extension de l'image et non de celle mis dans le code.
Merci,

signaler à un administrateur
Commentaire de nethacker le 02/05/2009 13:50:49

Bah, juste après l'upload ...

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

Upload de fichier [ par clovis ] Salut,je voudrais simplement savoir comment faire pour uploader un fichier de mon disque sur le serveur en PHP.Thanks Aide pour upload [ par Shin_RockmanX ] Hi, I'm sorry i don't speak english well... Please look my code: &lt;?php $ftp_server = "www.smaga.ch"; $ftp_user_name = "sys_smaga"; $user = $ftp_use Upload => en français [ par Shin_RockmanX ] Salut, Regardez ce code;&lt;?php $ftp_server = "www.smaga.ch"; $ftp_user_name = "sys_smaga"; $user = $ftp_user_name; $ftp_user_pass = "my_passcode_tru pb d'upload [ par Stephane ] salutvoila mon pb j'essaye d'uploader un file et quand je l'upload il me mets ca :Warning: Unable to open 'd:\text.bmp' for reading: No such file or d upload et mysql [ par elias ] Salut, voilà je rencontre un ptit bleme bien sur (serait je là sinon?)Alors voilà, je monte une chtite page en php et j'aimerais savoir deux choses, e upload de fichier [ par duareb ] bonjourJe cherche à uploader des fichiers avec &lt;method=post enctype="multipart/form-data" &gt; et le petit script php qui va avec pour copier le fi [urgent] upload et delais [ par lefab2 ] 'jourouala, j'ai un ch'tit pb sur un script PHP que je suis en train de développer ... il s'agit d'un album photoune page sert à faire l'upload d'imag Upload!!! [ par yoman64 ] A l'aide Pour upload!!!Quand quelqun veut uploader un zip sa dit:Warning: Unable to open 'C:\WINDOWS\Desktop\test.rar' for reading: No such file or di Pb nom de fichier lors d'un upload [ par Morbak ] Salut,J'ai fait un fichier classique qui contient un formulaire et qui permet a l'utilisateur de selectionner un fichier. J'ai utilise l'input type=fi securite lors d'un upload [ par erich10 ] j'ai un formulaire pour uploader un fichier dans un repertoire .Pour le faire mon repertoire est en chmod777, comment puis je faire pour interdire l'e


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,328 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.