Enregistrement de fichiers

Contenu du snippet

Enregistrement du fichier (pdf, jif, jpg, png, ...) sur le serveur http

Source / Exemple :


<?php
$erreur = "";
       
function enregistre_img ($fichier,$extensions_ok, $taille_max, $dest_dossier , &$erreur){
      //$fichier : fichier a traiter
      // $extensions_ok : les type de fichier doit etremis en argument dans un tableau (array).
      //$taille_max : la tail max est en octets
      // $dest_dossier : destinations du nouveau l'enregistrement (ex : "toto/")
      // $erreur : Variable d'erreur passe par adresse
      //si l'enregistrement a echoué on retoure 1 sino on retoure le nom du fichier enegistrer
      if ( $fichier['photo']['error'] != 0){      //verifier si il n'y a pas d'erreur : 1, 2, 3, 4, 5
           $erreur .= "Erreur sur le fichier : ".$fichier['photo']['name']." l'opération n'a pas été éfectué!! <br>\n";
           return 1;
      }
      elseif( !in_array( substr(strrchr($fichier['photo']['name'], '.'), 1), $extensions_ok ) ){ //l'extention n'est pas acepter
           // extraire tou les elements (extention accepter) du tableau
           $extensions = "";
           foreach($extensions_ok as $value){
                $extensions .= " où ".$value ;
           }
           $extensions = substr($extensions, 10);
           $erreur .= "Veuillez sélectionner un fichier de type : $extensions !";
           return 1;
      }

      elseif( $fichier['photo']['size'] > $taille_max){ //Verifier si la taille est plus petit que la taille max autorisé (par $taille_max)
              $erreur .= "Votre fichier doit faire moins de : ".($taille_max/1024)."Ko  !";
              return 1;
      }

      else{   //si le fichier n'a pas d'erreur
            $dest_fichier = basename($fichier['photo']['name']);
            //remplacer les caracteres accent
            $dest_fichier = strtr($dest_fichier,'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ','AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
            // remplacer les caracteres autres que lettres, chiffres et point par _
            $dest_fichier = preg_replace('/([^.a-z0-1]+)/i', '_', $dest_fichier);
            move_uploaded_file($fichier['photo']['tmp_name'], $dest_dossier . $dest_fichier);  //enregistrement sur le disk
            $erreur .= "Votre fichier \"$dest_fichier\" est enregistr&eacute";
            return "$dest_fichier";
      }

}

?>

<html>
<body>
<?php
    if(isset($_FILES['photo'])){
        $extensions_ok = array('png', 'gif', 'jpg', 'jpeg', 'pdf');    //mise des extention autorise dans un tableau
        $fichier = enregistre_img ($_FILES,$extensions_ok,100000,"photo/",$erreur);
    }
    print $erreur; //imprime les erreurs
?>
<!-- Debut Formulaire -->
<!-- Attention, ne de ne pas oublier le enctype="multipart/form-data" -->
<form method="POST" action="Document4.php" enctype="multipart/form-data">
<!-- Limiter la taille des fichiers à 500Ko -->
<input type="hidden" name="MAX_FILE_SIZE" value="500000" />
<fieldset>

<legend>Envoi de fichiers</legend>
<!-- champs d'envoi de fichier, de type file -->
<p><label for="photo">Photo :</label><input type="file" name="photo" /></p>
<!-- bouton d'envoi -->
<p><input type="submit" name="envoi" value="Envoyer les fichiers" /></p>
</legend>

</fieldset>
</form>
<!-- Fin du Formulaire -->
</body>
</html>

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.