IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[Mail] Renommer un fichier que j'envoie par mail


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    219
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 219
    Points : 61
    Points
    61
    Par défaut [Mail] Renommer un fichier que j'envoie par mail
    Bonjour,
    J'envoie un fichier que je récupère avec un "input type="file"", et j'utilise donc $_FILE['fichier']['tmp_name'] pour récupérer le chemin du fichier. Hors cela m'envoie le fichier avec un nom bizarre et je voudrais récupérer le vrai nom du fichier. Comment faire?
    Voici mon code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    <?php
    include "libmail.php";//placez dans le repertoire courant donc...
    $m= new Mail; // demarre l'email
    $m->From( "email" );// enlever les guillements pour placer une variable
    //$m->To( "co250587@hotmail.com");//idem
    $m->Subject( "Email avec attachement" );//idem
    $message= "Veuillez trouver ci-joint votre test de francais";
    $m->Body( $message); // corps du message
    //  $m->Cc( "contact@autredomaine.com");//facultatif
    $m->Bcc( "email");//facultatif
    $m->Priority(4) ; // Priorité Basse
    $m->Attach($_FILES['fichier']['tmp_name'], "application/pdf" ) ; // définition du type mime du document joint image/gif
    $m->Send();
    if($m)
         {
              echo 'Le message a bien été envoyé';
    	  echo $_FILES['fichier']['name'];
         }
         else
         {
              echo 'Le message n\'a pu être envoyé';
         } 
    ?>

  2. #2
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 777
    Points
    17 777
    Par défaut
    Rien d'anormal :
    $_FILES['fichier']['tmp_name'] est le chemin complet (incluant son nom) vers le fichier temporaire créé par le serveur après upload
    $_FILES['fichier']['name'] est le nom du fichier (vous n'avez pas le chemin) tel qu'il était nommé chez le client au moment où il a rempli le formulaire

    Vous êtes libres de les renommer et si vous ne déplacez pas les fichiers uploadés (fonction move_uploaded_file) ils sont perdus à la fin du script.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    219
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 219
    Points : 61
    Points
    61
    Par défaut
    ça je sais mais en fait, je voudrais par exemple envoyer un fichier x.pdf qui ce trouve dans c:/blabla/x.pdf . J'ai donc récupéré le chemin avec $_FILES["fichier"]["tmp_name"]. Mais lorsque je reçois l'email j'ai un nom en pièce jointe bizarre du style tmp76.pdf hors je voudrais qu'il s'appelle x.pdf. Comment faire?

  4. #4
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 777
    Points
    17 777
    Par défaut
    Vous ne copiez pas le fichier uploadé, ça vous simplifirait peut être la tâche car d'après la documentation de la librairie en question, la méthode Attach n'est pas prévue pour utiliser un autre nom que celui du fichier qui lui est passé comme premier paramètre (elle lui applique tout bêtement basename pour définir le nom lors de son attachement au mail). Si vous ne voulez pas modifier la classe (ou en faire une qui hérite de Mail) il faut tout simplement renommer le fichier avant (rename, move_uploaded_file). (à moins que ça passe avec un lien symbolique mais encore faut-il utiliser un système Linux/Unix)

Discussions similaires

  1. Envoi par mail d'un fichier sur IFS
    Par philippe30 dans le forum AS/400
    Réponses: 1
    Dernier message: 09/11/2011, 15h56
  2. Créer un fichier ascii et envoi par mail
    Par ermite67 dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 14/06/2011, 01h28
  3. Renommer un fichier avant envoi par Mail
    Par mumuludo dans le forum VBA Access
    Réponses: 2
    Dernier message: 02/01/2008, 17h01
  4. Réponses: 2
    Dernier message: 17/05/2007, 18h25

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo