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 :

[phpmailer] Joindre un fichier


Sujet :

Langage PHP

  1. #1
    Débutant
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2006
    Messages
    1 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 125
    Points : 704
    Points
    704
    Par défaut [phpmailer] Joindre un fichier
    Bonjour,

    Je n'arrive pas à joindre un fichier avec un formulaire et l'envoyer par mail...

    Voici une partie du formulaire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="file" name="fichier" size="26" />


    Et voici la partie de traitement php avec l'aide de phpmailer

    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
    $chemin_destination = '../Temp/';
    move_uploaded_file($_FILES['fichier']['tmp_name'], $chemin_destination.$_FILES['fichier']['name']);
    require "phpmailer/class.phpmailer.php";
    $mail = new PHPmailer();
    $mail->IsSMTP();
    $mail->Host='192.168.**.**';
    $mail->From='toto@toto.com';
    $mail->FromName   = "Procédure";
    $mail->AddAddress($config['test']);
    $mail->AddReplyTo($config['test']);	
     
    $mail->Subject='le sujet';
     $mail->MsgHTML('le message');
     
    $mail->AddAttachment("../Temp/".$_FILES['fichier']['name']);
     
     
    if(!$mail->Send())
    	{ 
    	    echo $mail->ErrorInfo; //Affiche le message d'erreur
    	}
    	else 
    	{	  
    	    echo 'Mail envoyé avec succès';
    	}
    	$mail->SmtpClose();
    	unset($mail);
    Évènements dans le 06?
    www.sortir06.com

  2. #2
    Modérateur
    Avatar de blueice
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2003
    Messages
    3 487
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2003
    Messages : 3 487
    Points : 5 134
    Points
    5 134
    Par défaut
    Quel est le problème exactement ?
    -_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_SIGNATURE -_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-
    Dans la mesure du possible, essayez de montrer votre problème en situation réelle en nous donnant une url, que l'on puisse tester.
    Pensez également à cocher

    Aucun problème ne doit être résolu en MP (Message Privé) le forum est là pour ça.

    Dimension Internet

  3. #3
    Débutant
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2006
    Messages
    1 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 125
    Points : 704
    Points
    704
    Par défaut
    J'ai fais plusieurs test, et je me suis rendu compte que les pièces jointes assez lourde (compris entre 5Mo et 10Mo), le fichier n'est pas uploader.

    Voici le code que j'ai modifié depuis
    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
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    					$dossier = 'upload/';
    					$fichier = basename($_FILES['fichier']['name']);
    					$taille_maxi = 10000000;//10mo
    					$taille = filesize($_FILES['fichier']['tmp_name']);
    					$extensions = array('.png', '.gif', '.jpg', '.jpeg', '.txt','.doc', '.pdf', '.xdoc', '.zip', '.rar');
    					$extension = strrchr($_FILES['fichier']['name'], '.'); 
    					//Début des vérifications de sécurité...
    					if(!in_array($extension, $extensions)) //Si l'extension n'est pas dans le tableau
    					{
    						 $erreur = 'Vous devez uploader un fichier de type png, gif, jpg, jpeg, txt, doc, pdf, xdoc, zip et rar';
    					}
    					if($taille>$taille_maxi)
    					{
    						 $erreur = 'Le fichier est trop gros...';
    					}
    					if(!isset($erreur)) //S'il n'y a pas d'erreur, on upload
    					{
    						 //On formate le nom du fichier ici...
    						 $fichier = strtr($fichier, 
    							  'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ ', 
    							  'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy-');
    						 $fichier = preg_replace('/([^.a-z0-9]+)/i', '-', $fichier);
    						 if(move_uploaded_file($_FILES['fichier']['tmp_name'], $dossier . $fichier)) //Si la fonction renvoie TRUE, c'est que ça a fonctionné...
    						 {
    							  //echo 'Upload effectué avec succès !';
    						 }
    						 else //Sinon (la fonction renvoie FALSE).
    						 {
    							  echo 'Echec de l\'upload !';
    						 }
    					}
    					else
    					{
    						 echo $erreur;
    					}
     
    					$chemin_destination = 'upload/';
    					require "phpmailer/class.phpmailer.php";
    					$mail = new PHPmailer();
    					$mail->IsSMTP();
    					$mail->Host='192.******';
     
    					$mail->From='*****';
    					$mail->FromName   = "Procédure";
    					$mail->AddAddress($config['test']);
    					$mail->AddReplyTo($config['test']);	
     
    					$mail->Subject='Modification article';
    				        $mail->MsgHTML($text);
     
     
    					$mail->AddAttachment('upload/'.$fichier.'');
     
    	    			if(!$mail->Send())
    					{ 
    					    echo $mail->ErrorInfo; //Affiche le message d'erreur
    					}
    					else 
    					{	  
    					    echo 'Mail envoyé avec succès';
    					}
    					$mail->SmtpClose();
    					unset($mail);

    Ce que je ne comprend pas, c'est qu'il n'y a aucun message d'erreur.
    Évènements dans le 06?
    www.sortir06.com

  4. #4
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 691
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 691
    Points : 20 230
    Points
    20 230
    Par défaut
    Ne serais ce pas une limitation de l'upload au niveau du php.ini, par défaut à 2Mo ?
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Modérateur
    Avatar de blueice
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2003
    Messages
    3 487
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2003
    Messages : 3 487
    Points : 5 134
    Points
    5 134
    Par défaut
    Ca provient peut-être du serveur mail qui n'accepte pas des pièces jointes au-delà de tant...
    Ou le contraire l'adresse du destinataire, autrement dit la tienne n'accepte pas un mail aussi lourd.
    C'est une idée comme ça...
    -_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_SIGNATURE -_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-
    Dans la mesure du possible, essayez de montrer votre problème en situation réelle en nous donnant une url, que l'on puisse tester.
    Pensez également à cocher

    Aucun problème ne doit être résolu en MP (Message Privé) le forum est là pour ça.

    Dimension Internet

  6. #6
    Modérateur
    Avatar de blueice
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2003
    Messages
    3 487
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2003
    Messages : 3 487
    Points : 5 134
    Points
    5 134
    Par défaut
    Ne serais ce pas une limitation de l'upload au niveau du php.ini, par défaut à 2Mo ?
    Evidemment, je ne pensais pas que tu "uploadais" d'abord... c'est sûrement ça
    -_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_SIGNATURE -_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-
    Dans la mesure du possible, essayez de montrer votre problème en situation réelle en nous donnant une url, que l'on puisse tester.
    Pensez également à cocher

    Aucun problème ne doit être résolu en MP (Message Privé) le forum est là pour ça.

    Dimension Internet

  7. #7
    Débutant
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2006
    Messages
    1 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 125
    Points : 704
    Points
    704
    Par défaut
    Citation Envoyé par grunk Voir le message
    Ne serais ce pas une limitation de l'upload au niveau du php.ini, par défaut à 2Mo ?
    Ils ont encore touché cette valeur...
    Je n'avais pas regardé upload_max_filesize en pensant que c'était à 10Mo

    Merci.
    Évènements dans le 06?
    www.sortir06.com

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. PHPmailer : impossible de joindre un fichier
    Par petipain dans le forum Langage
    Réponses: 12
    Dernier message: 25/08/2011, 10h00
  2. [PHPMailer] joindre un fichier image
    Par cutpeter56 dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 05/05/2008, 14h23
  3. Impossible de joindre un fichier.
    Par sondo dans le forum Excel
    Réponses: 5
    Dernier message: 27/07/2005, 10h48
  4. Comment joindre un fichier avec le composant CDONT
    Par PrinceMaster77 dans le forum ASP
    Réponses: 2
    Dernier message: 31/12/2004, 17h28
  5. Joindre un fichier en asp
    Par PrinceMaster77 dans le forum ASP
    Réponses: 3
    Dernier message: 16/09/2004, 09h44

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