Dynamic-Mess.com


"The world is a dynamic mess of jiggling things..."

PHP : envoyer et traiter un fichier par formulaire

Article posté le 14-01-2011 dans la catégorie PHP

Attention, le contenu cet article est peut-être obsolète !

Comment envoyer un fichier joint en PHP, et le traiter.

Souvent il est intéressant de vouloir joindre un fichier à un email, et le problème se pose dans le cas d'une utilisation d'un formulaire de contact. Pourtant, le webmaster lui-même peut souhaiter recevoir des fichiers, par exemple des rapports, des screenshots... Voici un petit exemple....

Formulaire, juste un menu SELECT + envoi de fichier :

<form class="" id="choixCateg" name="choixCateg" method="POST" action="" enctype="multipart/form-data">
    <select name="CATEGIMPORT">
    <?php
    for($leCompteur =0; isset($listeDesID[$leCompteur]['ID']); $leCompteur++)
    {
        echo '<p>'.$listeDesID[$leCompteur]['ID'].'</p>'.
        '<option name="'.$listeDesID[$leCompteur]['ID'].'" id="'.$listeDesID[$leCompteur]['ID'].'" value="'.$listeDesID[$leCompteur]['ID'].'">'.$listeDesID[$leCompteur]['NOM'].'</option>';
    }
    ?>
    </select>
    <input type="hidden" name="MAX_FILE_SIZE" value="4194304">
    <br/><br/><input type="file" name="fichier">
    <br/><input type=submit value=Importer>
    </form>

Enfin, côté serveur, dans le cas d'un fichier texte, lire et afficher chaque ligne :

if(isset($_FILES['fichier']['name'])&& !empty($_FILES['fichier']['name'])) //Verif existence fichier
{
    $leFichier =  $_FILES['fichier']['tmp_name']; //Là où se trouve le fichier temporairement. Vous pouvez aussi le déplacer dans un endroit définitif.

    //Début de la lecture

    $fp = fopen($leFichier,"r"); //lecture du fichier
    $leCompteurTemp=0;
    while (!feof($fp)) //on parcourt toutes les lignes
    { 
        $page = fgets($fp, 4096); // lecture du contenu de la ligne

 $page = preg_replace('/[x00-x1Fx80-xFF]/', '', $page);
        if(strlen($page)>0) //Filtre anti-lignes blanches
        {
            $Email[$leCompteurTemp]=$page;
            //echo '<br/>'.$page; 
            $leCompteurTemp++;
        }
    }
    echo '<br/>'.$leCompteurTemp.' enregistrements lus<br/>Début de l'importation';

 

 


Cet article vous a plu? Découvrez d'autres articles :


comments powered by Disqus