begin process at 2012 05 28 22:34:04
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Divers

 > 

Débutant(e)

 > 

Envoyer par mail un fichier téléchargé par le biais d'un formulaire html


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Envoyer par mail un fichier téléchargé par le biais d'un formulaire html

jeudi 28 janvier 2010 à 14:08:39 | Envoyer par mail un fichier téléchargé par le biais d'un formulaire html

Elisa23

Bonjour,

Je cherche depuis des jours mais, là, je craque... Tant pis pour ma fierté ! J'espère que vous pourrez m'aider...

J'ai fait un formulaire sur mon site internet. Les données renseignées dans le formulaire sont envoyées par mail (j'utilise PhpMailer).
Jusque là, pas de soucis, je reçois bien les données de type : nom, prénom, e-mail etc.

Là où ça se complique, c'est que je voudrais que les internautes puissent m'envoyer des fichiers. EX. : une personne qui remplit un formulaire de candidature et qui télécharge son CV => Je voudrais recevoir le CV en pièce jointe dans le mail.

Je reçois bien une pièce jointe, mais le soucis c'est qu'elle arrive "sans format". Par ex. Un internaute qui m'envoie le fichier "cv.doc", je reçois bien un fichier mais il s'appelle "phpiJljEo" sans extension…

Comment faire pour que le fichier arrive en pièce jointe avec son nom "d'origine" ?

Merci d'avance pour votre aide !
vendredi 29 janvier 2010 à 00:49:43 | Re : Envoyer par mail un fichier téléchargé par le biais d'un formulaire html

neigedhiver

Salut,

Il faut simplement renommer le fichier uploadé. Le mieux est encore de le déplacer avec move_uploaded_file, qui permet de le renommer lors du déplacement.
La variable $_FILES contient toutes les informations nécessaires au traitement du fichier uploadé.

--
Neige

Souvent la réponse à votre question se trouve dans la doc. Commencez par là ;)
vendredi 29 janvier 2010 à 09:00:37 | Re : Envoyer par mail un fichier téléchargé par le biais d'un formulaire html

Elisa23

Bonjour, neigedhiver !

Merci beaucoup pour ta réponse.

J'avais vu que move_uploaded_file existait, mais je ne sais pas m'en servir... Je ne sais pas vers quoi déplacer mon fichier puisque je ne travaille pas avec une base de donnée...
Je veux envoyer le fichier vers AddAttachment pour que je le reçoive par mail.
Du coup, je dois déplacer vers quoi ? Vers une variable intermédiaire ?

Merci d'avance de m'aider !

Elisa
vendredi 29 janvier 2010 à 12:57:31 | Re : Envoyer par mail un fichier téléchargé par le biais d'un formulaire html

neigedhiver

Salut,

Il faut déplacer le fichier dans un répertoire de ton site (que ce répertoire soit ou non accessible depuis le web).
move_uploaded_file prend deux arguments : le chemin du fichier temporaire uploadé et le chemin du nouveau fichier (répertoire + nom du fichier). C'est le fait de spécifier un nom de fichier différent qui le renomme.
Le chemin du fichier temporaire est indiqué dans la variable $_FILES ainsi que son nom d'origine.

--
Neige

Souvent la réponse à votre question se trouve dans la doc. Commencez par là ;)
vendredi 29 janvier 2010 à 13:29:55 | Re : Envoyer par mail un fichier téléchargé par le biais d'un formulaire html

Elisa23

Merci. J'ai beaucoup à apprendre, désolée.

Si je fais :
Code PHP :
move_uploaded_file($_FILES['file1']['tmp_name'], $_FILES['file1']['name']);


Est-ce que je peux faire un "echo" pour vérifier si le nom à changé ?

Comment je me sert du répertoire du site dont tu parles ?

Merci d'avance.

Elisa
vendredi 29 janvier 2010 à 15:51:01 | Re : Envoyer par mail un fichier téléchargé par le biais d'un formulaire html

neigedhiver

Je crois que $_FILES['file1']['name'] contient uniquement le nom du fichier : il faut y rajouter le chemin (répertoires) dans lequel tu souhaites le déplacer. Idem, je ne sais plus ce qu'il y a dans $_FILES['file1']['tmp_name'] : le nom du fichier ou son chemin complet.

Pour faire propre, stocke le (nouveau) chemin complet du fichier dans une variable, que tu pourras réutiliser ensuite pour la mettre en pièce jointe à ton mail.
Code PHP :
<?php
$new_path = '/chemin/vers/le/repertoire/de/ton/choix/' . $_FILES['file1']['name'];
move_uploaded_files($_FILES['file1']['tmp_name'], $new_path);
?>

Tu peux utiliser echo pour vérifier que $new_path correspond bien au nom du fichier que tu souhaites, avec le bon répertoire.

--
Neige

Souvent la réponse à votre question se trouve dans la doc. Commencez par là ;)
vendredi 29 janvier 2010 à 22:19:00 | Re : Envoyer par mail un fichier téléchargé par le biais d'un formulaire html

Elisa23

Salut !

Merci beaucoup pour ton aide !

Quand je fais echo sur $new_path, je vois que ça marche bien, mais quand je veux envoyer le contenu de $new_path par mail ça ne fonctionne pas.
Code PHP :
$mail->AddAttachment($new_path);



J'ai le message d'erreur :
Could not access file: /repertoire/fichier.doc

Je ne vois vraiment plus quoi essayer !

Merci d'avance si tu as d'autres idées !

Elisa
vendredi 29 janvier 2010 à 23:10:20 | Re : Envoyer par mail un fichier téléchargé par le biais d'un formulaire html

neigedhiver

Ben normalement, c'est à ce moment là de l'histoire que tu dévoiles ton.... code (what else ?)
Pour l'instant, c'est pas facile de savoir ce qui cloche, parce que je ne sais pas précisément ce que tu fais ;)

--
Neige

Souvent la réponse à votre question se trouve dans la doc. Commencez par là ;)
lundi 1 février 2010 à 14:14:46 | Re : Envoyer par mail un fichier téléchargé par le biais d'un formulaire html

Elisa23

Bonjour,

Voici un code qui "fonctionn" à ceci près que je reçois par mail un fichier qui a un nom étrange (!) => le tmp_name en fait... Et je n'arrive pas à faire en sorte que mon fichier arrive par mail avec son nom de départ.

Code du formulaire :

Code HTML :
<form method="post" action="traitement_formulaire.php" enctype="multipart/form-data"> 
Nom : <input type="text" name="nom" size="12"><br> 
Pr&eacute;nom : <input type="text" name="prenom" size="12"><br>
E-mail : <input type="text" name="mail" size="12"><br>
Téléphone : <input type="text" name="phone" size="12"><br>

<input name="file" type="file" /><br>

<input type="submit" value="OK"> 
</form>




Code traitement :
Code PHP :
<?php 
$prenom = $_POST['prenom']; 
$nom = $_POST['nom'];
$email = $_POST['mail'];
$phone = $_POST['phone'];


require "class.phpmailer.php";
	$mail = new PHPmailer();
	$mail->IsSMTP();
	$mail->IsHTML = true;
	$mail->SMTPAuth   = true;
	$mail->SMTPSecure = "ssl";
	$mail->Host       = "smtp.gmail.com";
	$mail->Port       = 465;
	$mail->Username   = "*****";
	$mail->Password   = "*****";
	$mail->From='*****';
	$mail->AddCc($email);
	$mail->AddAddress('*****');
	$mail->AddReplyTo('*****');
	$mail->AddAttachment($_FILES['file']['tmp_name']);
	$mail->CharSet = 'iso-8859-1';
	$mail->ContentType = 'text/html';
	$mail->Encoding = '8bit';
	
	
	$mail->Subject = 'Candidature Spontanée';
	$mail->Body .= 'Coordonnées : ' .'<br/><br/>';
	$mail->Body .= $civil .' ' .$prenom .' ' .$nom .'<br/>';
	$mail->Body .= $phone .'<br/>';
	$mail->Body .= $email .'<br/><br/>';
	$mail->Body .= 'CV et lettre de motivation en pièces jointes';
	


	if(!$mail->Send()){ 
	  echo $mail->ErrorInfo; 
	}
	else
	unset($mail);
?>




Les ***** remplacent mon adresse e-mail ou password.

Merci d'avance pour votre aide !

Elisa
lundi 1 février 2010 à 14:22:54 | Re : Envoyer par mail un fichier téléchargé par le biais d'un formulaire html

neigedhiver

Salut,

La méthode AddAttachment accepte plusieurs arguments. Le premier étant le chemin du fichier. Mais le second permet, si j'en crois ce que je lis dans la doc, de spécifier le nom du fichier joint. Est-ce que ça marche ?
Source : http://phpmailer.worxware.com/index.php?pg=methods


--
Neige

Souvent la réponse à votre question se trouve dans la doc. Commencez par là ;)

1 2

Cette discussion est classée dans : fichier, mail, formulaire, envoyer, reçois


Répondre à ce message

Sujets en rapport avec ce message

Mail et formulaire [ par Jackboy ] J'aimerai créer un formulaire, assez complexe (pas seulement email, nom, message,...) et j'aimerai avoir ce formulaire envoyer dans un email et format Envoyer un form par mail ! ! ! [ par laubro ] Bonjour,j'ai un formulaire que je voudrais me faire envoyer "par mail", celui-ci contien des champsclassiques : nom prenom adresse......+ 1 case texta envoyer un mail sans formulaire [ par FloThePro38640 ] aidez moi plz, jaimerais faire ce qu'on ma dit : [Champs du formulaire]Or je ne trouve pas de script d'envoi de mail. Pouvez vous m'aider plz jen ai v Envoyer un formulaire pas e-mail (SVP, veuillez le mettre pour qu'il fonctionne avec HotMail.) [ par bloom1 ] Bonjour, je me demande comment on fait pour envoyer un formulaire par e-mail.J'ai déja essayé ca:>M php --> excel [ par yoyopotpot ] Bonjour à tous!Voilà je vous explique mon problème :j'ai un formulaire en php et j'aimerai pouvoir "envoyer" les données de ce formulaire dans un fich [URG] mail() et page html [ par Magidev ] Bonjour à tous,Voila mon problème,Je suis entrain de réaliser pour l'instant un systeme et j'aurais besoin d'envoyer un mail de confirmation MAISIl fa Recup code html de fichier pour envoyer par mail() [ par Magidev ] Je souhaite récuperer le code d'un fichier HTML de mon site pour l'envoyer par mail au meme formatDans ce code HTML il ya des var php du style $mavarE formater le texte d'un formulaire envoyer par mail depuis un source flash, [ par nykos2004 ] Nykos Récupérer les infos d'un formulaire envoyé par mail [ par Osirex ] Bonjour, J'aimerais me lancer dans le PHP. J'ai un ptit projet qui est le suivant : Je voudrais envoyer un mail en introduisant du code php dedans pou envoyer formulaire par mail [ par xps ] BonjourJ'ai chercher comment envoyer un mail en php sur le site mais il n'y a rien qui fonctionne.Je voudrais envoyer un mail en php avec mon mail inv


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,499 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales