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 :

Envoi d'une pièce jointe


Sujet :

Langage PHP

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Mars 2009
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Envoi d'une pièce jointe
    Bonjour tout le monde,
    C'est mon premier jour dans ce forum, et j'espere que j'ai bien choisié la page.
    Je suis debutant en PHP, et j'ai essayer d'envoyer une piece jointe avec un message et ça marche pas jusqu'a maintenant ! il m'affiche un message d'erreur.

    Voici d'abord une portion du code :
    --------------------------

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
     
    if ("$NomFichier_name"!="") {
    	copy("$NomFichier","../upload/$NomFichier_name");
    	$m->Attach( "../upload/$NomFichier_name", "application/octet-stream" );
    	}
            $m->Send(); 
    if ("$NomFichier_name"!="") {
    Unlink("../upload/$NomFichier_name");   }
    et voici le msg d'erreur:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Warning: copy(../upload/file.rar) [function.copy]: failed to open stream: No such file or directory in /home/..../public_html/formail-p.php on line 279
    Class Mail, method attach : file ../upload/file.rar can't be found
    Merci d'avance.

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Bonjour et bienvenu sur le forum,

    Il faudrait qu'on voit le debut de ton code pour mieux savoir ce qui se passe car la on ne sait pas ce que sont $NomFichier_name et $NomFichier.

    Au passage, ne mets pas de guillemets à tes variables chaine :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    if ($NomFichier_name !="") {
    	copy($NomFichier,"../upload/$NomFichier_name");
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    135
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 135
    Points : 179
    Points
    179
    Par défaut
    Bah le problème, c'est qu'il trouve pas le fichier spécifié donc c'est pas ton code, qu'il faut vérfier, mais l'emplacement ou l'existence du fichier à copier...

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Pas forcemment ... s'il utilise les mauvaises variables $NomFichier a la place de $NomFichier_name par exemple sa copie ne marchera evidemment pas.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    135
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 135
    Points : 179
    Points
    179
    Par défaut
    mouais, soit... mais si c'est le cas, vu que le fichier est ensuite supprimé via 'unlink' , l'erreur est normale

  6. #6
    Nouveau Candidat au Club
    Inscrit en
    Mars 2009
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Merci...

    Voici quelques portions du code que j'ai utilisé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    function Attach( $filename, $filetype='application/x-unknown-content-type', $disposition = "inline" )
    {
            // TODO : si filetype="", alors chercher dans un tablo de MT connus / extension du fichier
            $this->aattach[] = $filename;
            $this->actype[] = $filetype;
            $this->adispo[] = $disposition;
    }
    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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
     
    function _build_attachement()
    {
            $this->boundary= "------------" . md5( uniqid("myboundary") ); // TODO : variable bound
            $this->headers .= "MIME-Version: 1.0\nContent-Type: multipart/mixed;\n boundary=\"$this->boundary\"\n\n";
            $this->fullBody = "This is a multi-part message in MIME format.\n--$this->boundary\nContent-Type: text/plain; charset=us-ascii\nContent-Transfer-Encoding: 7bit\n\n" . $this->body ."\n";
            $sep= chr(13) . chr(10);                                                        
            $ata= array();
            $k=0;
            // for each attached file, do...
            for( $i=0; $i < sizeof( $this->aattach); $i++ ) {
                    $filename = $this->aattach[$i];
                    $basename = basename($filename);
                    $ctype = $this->actype[$i];        // content-type
                    $disposition = $this->adispo[$i];
                    if( ! file_exists( $filename) ) {
                            echo "Class Mail, method attach : file $filename can't be found"; exit;
                    }
                    $subhdr= "--$this->boundary\nContent-type: $ctype;\n name=\"$basename\"\nContent-Transfer-Encoding: base64\nContent-Disposition: $disposition;\n  filename=\"$basename\"\n";
                    $ata[$k++] = $subhdr;
                    // non encoded line length
                    $linesz= filesize( $filename)+1;
                    $fp= fopen( $filename, 'r' );
                    $data= base64_encode(fread( $fp, $linesz));
                    fclose($fp);
                    $ata[$k++] = chunk_split( $data );
    /*
                    // OLD version - used in php < 3.0.6 - replaced by chunk_split()
                    $deb=0; $len=76; $data_len= strlen($data);
                    do {
                            $ata[$k++]= substr($data,$deb,$len);
                            $deb += $len;
                    } while($deb < $data_len );
    */        }
            $this->attachment= implode($sep, $ata);
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    if ("$NomFichier_name" !="") {
    	copy("$NomFichier","../upload/$NomFichier_name"); //ERROR (Ligne 279) dans la fct copy();
    	$m->Attach( "../upload/$NomFichier_name", "application/octet-stream" );
    	}
            $m->Send(); 
    if ($NomFichier_name!="") {
    Unlink("../upload/$NomFichier_name");   }
    et voici le message d'erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Warning: copy(../upload/file.rar) [function.copy]: failed to open stream: No such file or directory in /home/..../public_html/send.php on line 279
    Class Mail, method attach : file ../upload/file.rar can't be found
    Je pense pas que le problème est avec le fichier que je veux envoyer, j'ai testé plusieurs fois !!
    Ok, donc je vais enlever les guillemets de mes variables chaine.

    Merci d'avance.

Discussions similaires

  1. [PHPMailer] Problème d'envoi d'une pièce jointe
    Par yumechan dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 20/07/2012, 11h54
  2. Envoi d'une pièce jointe par email (OUTLOOK) avec macro excel
    Par francky74 dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 02/08/2011, 11h20
  3. Réponses: 4
    Dernier message: 09/06/2010, 17h44
  4. Envoi d'une piéce jointe dans un e-mail
    Par koKoTis dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 3
    Dernier message: 16/03/2009, 09h44
  5. [Mail] Envoi du contenu d'une pièce jointe par mail
    Par nonhosonno dans le forum Langage
    Réponses: 2
    Dernier message: 28/02/2007, 13h42

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