Script d'hébergement d'images

MK -  
 MiKL -
Bonjour tous le monde,

Voilà, j'ai ce script en PHP et HTML :

<html>
<head><title>Uploadez vos images!</title></head>
<body>
<?php
$poids_max = 512000; // Poids max de l'image en octets (1Ko = 1024 octets)
$repertoire = 'uploads/'; // Repertoire d'upload
if (isset($_FILES['fichier']))
{
   
   // On vérifit le type du fichier
   if ($_FILES['fichier']['type'] != 'image/png' && $_FILES['fichier']['type'] != 'image/jpeg' && $_FILES['fichier']['type'] != 'image/jpg' && $_FILES['fichier']['type'] != 'image/gif')
   {
      $erreur = 'Le fichier doit être au format *.jpeg, *.gif ou *.png .';
   }
   
   // On vérifit le poids de l'image
   elseif ($_FILES['fichier']['size'] > $poids_max)
   {
      $erreur = 'L\'image doit être inférieur à ' . $poids_max/1024 . 'Ko.';
   }
   
   // On vérifit si le répertoire d'upload existe
   elseif (!file_exists($repertoire))
   {
      $erreur = 'Erreur, le dossier d\'upload n\'existe pas.';     
   }
   
   // Si il y a une erreur on l'affiche sinon on peut uploader
   if(isset($erreur))
   {
      echo '' . $erreur . '<br><a href="javascript:history.back(1)">Retour</a>';
   }
    else
   {
         
      // On définit l'extention du fichier puis on le nomme par le timestamp actuel
      if ($_FILES['fichier']['type'] == 'image/jpeg') { $extention = '.jpeg'; }
      if ($_FILES['fichier']['type'] == 'image/jpeg') { $extention = '.jpg'; }
      if ($_FILES['fichier']['type'] == 'image/png') { $extention = '.png'; }
      if ($_FILES['fichier']['type'] == 'image/gif') { $extention = '.gif'; }
      $nom_fichier = time().$extention;
             
      // On upload le fichier sur le serveur.
      if (move_uploaded_file($_FILES['fichier']['tmp_name'], $repertoire.$nom_fichier))
      {
         $url = 'www.monsite.com/'.$repertoire.''.$nom_fichier.'';
         echo 'Votre image à été uploadée sur le serveur avec succes!<br>Voici le lien: <input type="text" value="' . $url . '" size="60">';
      }
      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
}
?>


Et comme je ne sais pas trop programmer, pouvais-vous modifier ce script et faire en sorte que ca marche avec les extensions suivantes :

.bmp
.jpg
.png
.ico

Merci d'avance.

6 réponses

  1. Seb
     
    Essai ça ;)

    <html>
    <head><title>Uploadez vos images!</title></head>
    <body>
    <?php
    $poids_max = 512000; // Poids max de l'image en octets (1Ko = 1024 octets)
    $repertoire = 'uploads/'; // Repertoire d'upload
    if (isset($_FILES['fichier']))
    {

    // On vérifit le type du fichier
    if ($_FILES['fichier']['type'] != 'image/png' && $_FILES['fichier']['type'] != 'image/jpeg' && $_FILES['fichier']['type'] != 'image/jpg' && $_FILES['fichier']['type'] != 'image/gif' && $_FILES['fichier']['type'] != 'image/bmp' && $_FILES['fichier']['type'] != 'image/jpg' && $_FILES['fichier']['type'] != 'image/png' && $_FILES['fichier']['type'] != 'image/ico')
    {
    $erreur = 'Le fichier doit être au format *.jpeg, *.bmp, *.jpg, *.png, *.ico *.gif ou *.png .';
    }

    // On vérifit le poids de l'image
    elseif ($_FILES['fichier']['size'] > $poids_max)
    {
    $erreur = 'L\'image doit être inférieur à ' . $poids_max/1024 . 'Ko.';
    }

    // On vérifit si le répertoire d'upload existe
    elseif (!file_exists($repertoire))
    {
    $erreur = 'Erreur, le dossier d\'upload n\'existe pas.';
    }

    // Si il y a une erreur on l'affiche sinon on peut uploader
    if(isset($erreur))
    {
    echo '' . $erreur . '<br><a href="javascript:history.back(1)">Retour</a>';
    }
    else
    {

    // On définit l'extention du fichier puis on le nomme par le timestamp actuel
    if ($_FILES['fichier']['type'] == 'image/jpeg') { $extention = '.jpeg'; }
    if ($_FILES['fichier']['type'] == 'image/jpeg') { $extention = '.jpg'; }
    if ($_FILES['fichier']['type'] == 'image/png') { $extention = '.png'; }
    if ($_FILES['fichier']['type'] == 'image/gif') { $extention = '.gif'; }
    if ($_FILES['fichier']['type'] == 'image/gif') { $extention = '.bmp'; }
    if ($_FILES['fichier']['type'] == 'image/gif') { $extention = '.jpg'; }
    if ($_FILES['fichier']['type'] == 'image/gif') { $extention = '.png'; }
    if ($_FILES['fichier']['type'] == 'image/gif') { $extention = '.ico'; }
    $nom_fichier = time().$extention;

    // On upload le fichier sur le serveur.
    if (move_uploaded_file($_FILES['fichier']['tmp_name'], $repertoire.$nom_fichier))
    {
    $url = 'www.monsite.com/'.$repertoire.''.$nom_fichier.'';
    echo 'Votre image à été uploadée sur le serveur avec succes!<br>Voici le lien: <input type="text" value="' . $url . '" size="60">';
    }
    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
    }
    ?>
    12
  2. MiKL
     
    bonjour, ce script la est pas mal , marche très bien
    il manquerai peu être une extension flash avec ce code [flash=]...[/flash]
    1
  3. MK
     
    Excusez-moi des 2 postes a la suite,
    Mais j'en ai vraiment besoin !
    0
  4. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  5. MK
     
    Bonjour, merci de m'avoir répondu.
    J'ai fais un test, j'ai remplacé votre script par le mien.

    Mais, ca n'a pas marché, peut-être parce que comme vous pas mis la balise <code> dans votre message.
    0
  6. Yaka74
     
    Il faudrait plutôt utiliser un script qui vérifie le type mime des fichiers pour savoir si ce sont vraiment des images. Ça éviterait de se faire pirater car on peut frauder avec celui là.^^ J'en est trouvé un payant mais plus destiné à créer un site pro (même si pas très cher) et pas mal travaillé : http://blog.gregmarchal.com/script-hebergement-upload-images/
    Sinon vous pouvez utiliser les nombreux sites qui existent déjà pour ça.
    0