Se connecter avec
S'enregistrer | Connectez-vous

Formulaire php avec fichier joint

Dernière réponse : dans Programmation

Salut à tous,

Je reçois très bien le fichier joint de mon formulaire sur ma boite yahoo mais si je l'envoie sur une autre boite qui est gérer par OUTLOOK, le fichier joint ne s'affiche pas. Il y a plein de caractere qui s'affiche.

Je sais pas si c'est compliqué pour le modifier pour OUTLOOK.

VOici le code qui gère le formulaire :

  1. <?php
  2. $name_file = $_FILES['monfichier']['name'];
  3. $source = $_FILES['monfichier']['tmp_name'];
  4.  
  5. move_uploaded_file($source, "./".$name_file);
  6.  
  7. $extension=get_extension($name_file);
  8.  
  9. $type="text/plain";
  10. if($type=="doc")
  11. {
  12. $type="text/vnd.ms-word";
  13. }
  14. else if($type=="xls")
  15. {
  16. $type="text/vnd.ms-excel";
  17. }
  18.  
  19. $type2="image/png";
  20.  
  21. if($extension=="gif")
  22. {
  23. $type2="image/gif";
  24. }
  25. else if($extension=="bmp")
  26. {
  27. $type2="image/bmp";
  28. }
  29.  
  30. function get_extension($filename)
  31. {
  32. $parts = explode('.',$filename);
  33. $last = count($parts) - 1;
  34. $ext = $parts[$last];
  35. return $ext;
  36. }
  37.  
  38. //----------------------------------
  39. // Construction de l'entête
  40. //----------------------------------
  41. $boundary = "-----=".md5(uniqid(rand()));
  42. $header = "MIME-Version: 1.0\r\n";
  43. $header .= "Content-Type: multipart/mixed; boundary=\"$boundary\"\r\n";
  44. $header .= "\r\n";
  45.  
  46. $msg = "Je vous informe que ceci est un message au format MIME 1.0 multipart/mixed.\r\n";
  47.  
  48. $msg .= "--$boundary\r\n";
  49.  
  50. $msg .= "Content-Type: $type; charset=UTF-8";
  51. $msg .= "Content-Transfer-Encoding:8bit\r\n";
  52.  
  53. if($name_file!="")
  54. {
  55. $file = $name_file;
  56. $fp = fopen($file, "rb");
  57. $attachment = fread($fp, filesize($file));
  58. fclose($fp);
  59.  
  60. $attachment = chunk_split(base64_encode($attachment));
  61.  
  62. $msg .= "--$boundary\r\n";
  63. $msg .= "Content-Type: $type2; name=\"$file\"\r\n";
  64. $msg .= "Content-Transfer-Encoding: base64\r\n";
  65. $msg .= "Content-Disposition: inline; filename=\"$file\"\r\n";
  66. $msg .= "\r\n";
  67. $msg .= $attachment . "\r\n";
  68. $msg .= "\r\n\r\n";
  69. $msg .= "--$boundary--\r\n";
  70. $msg .= "Postule pour $objet\n\n";
  71. }
  72.  
  73. //----------------------------------
  74. // On test si un champs est vide
  75. //----------------------------------
  76. if(empty($from) OR empty($monfichier) OR empty($choix)){
  77. echo "Merci de remplir tous champs du formulaire";
  78. }
  79. else{
  80. if($_POST['from'] != "" && $_FILES['monfichier'] != "" && $_POST['choix'] != "") {
  81. $destinataire = "monmail@yahoo.fr";
  82. $expediteur = $_POST['from'];
  83. $reponse = $expediteur;
  84. echo "Merci votre CV a bien été envoyé<br />";
  85. echo "Vous recevrez une réponse dans quelques jours";
  86.  
  87. mail($destinataire, "CV: $choix", $msg, "Reply-to: $reponse\r\nFrom: $expediteur\r\n".$header);
  88. }
  89. else {
  90. echo "Merci de remplir tous les champs";
  91. }
  92. }
  93.  
  94. if($name_file!="")
  95. {
  96. }
  97. print("<br>\n");
  98. print("<br><a href=<a href="http://www.site.fr/" target="_blank">http://www.site.fr/</a> target=\"principal\"><font size=2>Retour sur le site</font></a>");
  99. ?>


Merci de votre aide.

Autres pages sur : formulaire php fichier joint

Lassé par la pub ? Créez un compte

apparement ca marche sur le outlook ke j'ai moi (express et celui de office) mais pour celui de la personne qui recevra le mail, ca n'a pas l'air de marcher. Ca recois plein de caractere sans fichier joint, vraiment bizarre
Lassé par la pub ? Créez un compte
Tom's guide dans le monde