Bonjour,
Jaimerai envoyer une image dans un mail en pice jointe grce un script PHP.
Limage est gnre par un swf et envoy la page PHP au travers dune variable POST. Pour faire cela jai suivi la mthode suivante : http://www.adobe.com/devnet/flash/ar..._graphics.html
Suite cela jai essay de modifier un script PHP pour lenvoyer en pice jointe dans un mail.
Jarrive faire ce mail avec une pice jointe MAIS la pice jointe est corrompu. L'image est illisible, quand j'ouvre l'image avec le bloc note il y a plein de sauts de lignes (alors que quand je regarde l'image gnr par le script dans la page en lien ci-dessus, il n'y a pas ces sauts de lignes). Et je ne comprends pas du tout pourquoi
![]()
![]()
.
Les lignes concernant la pice jointe sont les suivantes : 107 109 et 147 152
Code : Slectionner tout - Visualiser dans une fentre 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
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175 <?php /* ******************************************************************************************** CONFIGURATION ******************************************************************************************** */ // destinataire est votre adresse mail. Pour envoyer à plusieurs à la fois, séparez-les par une virgule $destinataire = 'monmail@mondomaine.fr'; // copie ? (envoie une copie au visiteur) $copie = 'non'; // Action du formulaire (si votre page a des paramètres dans l'URL) // si cette page est index.php?page=contact alors mettez index.php?page=contact // sinon, laissez vide $form_action = ''; // Messages de confirmation du mail $message_envoye = "Votre message nous est bien parvenu !"; $message_non_envoye = "L'envoi du mail a échoué, veuillez réessayer SVP."; // Message d'erreur du formulaire $message_formulaire_invalide = "Vérifiez que tous les champs soient bien remplis et que l'email soit sans erreur."; /* ******************************************************************************************** FIN DE LA CONFIGURATION ******************************************************************************************** */ /* * cette fonction sert à nettoyer et enregistrer un texte */ function Rec($text) { $text = trim($text); // delete white spaces after & before text if (1 === get_magic_quotes_gpc()) { $stripslashes = create_function('$txt', 'return stripslashes($txt);'); } else { $stripslashes = create_function('$txt', 'return $txt;'); } // magic quotes ? $text = $stripslashes($text); $text = htmlspecialchars($text, ENT_QUOTES); // converts to string with " and ' as well $text = nl2br($text); return $text; }; /* * Cette fonction sert à vérifier la syntaxe d'un email */ function IsEmail($email) { $pattern = "^([a-z0-9_]|\\-|\\.)+@(([a-z0-9_]|\\-)+\\.)+[a-z]{2,7}$"; return (eregi($pattern,$email)) ? true : false; }; $err_formulaire = false; // sert pour remplir le formulaire en cas d'erreur si besoin // si formulaire envoyé, on récupère tous les champs. Sinon, on initialise les variables. $nom = (isset($_POST['nom'])) ? Rec($_POST['nom']) : ''; $prenom = (isset($_POST['prenom'])) ? Rec($_POST['prenom']) : ''; $phonfixe = (isset($_POST['phonfixe'])) ? Rec($_POST['phonfixe']) : ''; $phonport = (isset($_POST['phonport'])) ? Rec($_POST['phonport']) : ''; $email = (isset($_POST['mail'])) ? Rec($_POST['mail']) : ''; $objet = (isset($_POST['objet'])) ? Rec($_POST['objet']) : ''; $monmessage = (isset($_POST['message'])) ? Rec($_POST['message']) : ''; $monenvoi = (isset($_POST['envoi'])) ? Rec($_POST['envoi']) : ''; $monfilename = (isset($_POST['fileName'])) ? Rec($_POST['fileName']) : ''; if (isset($_POST['envoi'])) { // On va vérifier les variables et l'email ... $email = (IsEmail($email)) ? $email : ''; // soit l'email est vide si erroné, soit il vaut l'email entré $err_formulaire = (IsEmail($email)) ? false : true; if (($nom != '') && ($email != '') && ($objet != '') && ($monmessage != '')) { // les 4 variables sont remplies, on génère puis envoie le mail //$headers .= "MIME-Version: 1.0\r\n"; $headers = "Date: ".date("l j F Y, G:i")."\n"; $headers .= "MIME-Version: 1.0\n"; $headers .= "Content-Type: multipart/mixed;\n"; $headers .= " boundary=\"----=$limite\"\n\n"; $headers .= 'From: '.$nom.' '.$prenom.' <'.$email.'>' . "\r\n"; // envoyer une copie au visiteur ? if ($copie == 'oui') { $cible = $destinataire.','.$email; } else { $cible = $destinataire; }; //$attachement = chunk_split(base64_decode($_POST["image"])); $attachement = base64_decode($_POST["image"]); //$attachement = chunk_split($_POST["image"]); $message = "------=$limite\n"; $message .='Content-Type: text/html; charset="iso-8859-1"'. "\n"; $message .='Content-Transfer-Encoding: 8bit'. "\n"; $message .= "\n"; $message .= '<html> <head> <title>'.$objet.'</title> </head> <body bgcolor="#FFFFFF" style="font-family:Arial, Helvetica, sans-serif"> <p><strong><em>Informations :</em></strong></p> <table border="2" cellspacing="0" bordercolor="#CCCC30" bgcolor="#FFFFFF" bordercolordark="#CCCC30" cellpadding="7"> <tr> <th>Nom</th><th>Prenom</th><th>téléphone fixe</th><th>téléphone portable</th><th>Email</th> </tr> <tr> <td>'.$nom.'</td><td>'.$prenom.'</td><td>'.$phonfixe.'</td><td>'.$phonport.'</td><td>'.$email.'</td> </tr> </table><br> <p>valeur de la vaiable envoi : '.$monenvoi.'</p> <p>Nom du fichier : '.$monfilename.'</p> <p><strong><em>Message :</em> '.$objet.'</strong></p> <p>'.$monmessage.'</p> </body> </html> '."\n"; //$message .= $attachement; $message .= "------=$limite\n"; // Remplacement de certains caractères spéciaux //$message = html_entity_decode($message); //$message = str_replace(''',"'",$message); //$message = str_replace('',"'",$message); //$message = str_replace('<br>','',$message); //$message = str_replace('<br />','',$message); $message .= 'Content-Type: image/jpeg; name="image" \n'; $message .= "Content-Transfer-Encoding: base64 \n"; $message .= 'Content-Disposition: attachment; filename="image.jpeg"'; $message .= " \n\n"; $message .= $attachement; $message .= "------=$limite\n"; // a ajouter icic/////////////////////////////////////////////////////////////////////////////////////////////////: // Envoi du mail if (mail($cible, $objet, $message, $headers)) { echo '<p>'.$message_envoye.'</p>'."\n"; } else { echo '<p>'.$message_non_envoye.'</p>'."\n"; }; } else { // une des 3 variables (ou plus) est vide ... echo '<p style="color:#C00">'.$message_formulaire_invalide.'</p>'."\n"; $err_formulaire = true; }; }; // fin du if (!isset($_POST['envoi'])) ?>
Je vous remercie par avance pour votre aide.
la pice jointe corrompu se prsente ainsi dans le bloc note :
Quand j'ouvre une image jpeg valide dans le BlocNote il n'y a pas tous ces saut de lignes....JFIF
%# , #&')*)-0-(0%()(
((((((((((((((((((((((((((((((((((((((((((((((((((( |
} !1AQa"q2#BR$3br
%&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz
w !1AQaq"2B #3Rbr
$4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ? 4>F{Kvf &5$ڰm_5qա
INI%'̳c >V38?3 ?
_ٶ?m ~(a R 0ͱ +oG3 m[ߥ
9lf?l/Qc0 ac >Vf / Ks0? )f ϕ_𣙇a ? K6|* ?3 ?
_ٶ?m ~(a R 0ͱ +oG3 m[ߥ
9lf?l/Qc0 ac >Vf /<W߳[ѝ?+Jm'oQܶnsڴY Eg-τ?a_r ҙn۲s)PU\kk_R' 5^aA!@ P@ P@ x/ 2 *ҟSN s n=H UpOTKs3W [ra<=hVJ*?\?ue2wR
K3_qU16<k*
a/{;}AP@ 9
Գʖ]{+l)*/ᬻ K$v> A(P{>L͵*?(?i? iVp۟qG"[¿ 2ӰDf9!Fx8!9(xZtfaTv^pZ6\.4%ZJ>[t=k*. 0* 8MS.)dٽl+5N+٬NNFgB#r[nu#&8T՚LeƜ+4⛷tk8uuD}UJ߀*Y8{>FAN4r|>6qOezl5G`0L|gA%#˅4;T`dԚm>:Xm[[IkH}#qQUrKz(*
*xÛ/) ˟ J}O8b?M#AV_?Q-ό?a_r ҙnM ý2ysĘ z=+6j<.4*SI%e'{^848*mGCj*qnm[cDXsNn ]^E@*NXnyW<{s<m`RA}>[\5g.84^HkY>vgO}w;y$rVeC.aFb(!!Cq4l:r1P:"h<39VcuhNb\ ϽqFJџw3l^N5~M~Uued# áx[F:T*Stӳ]A@CqfB:`qSqktw80QjPSVwM]];ki!@!K ̹ o?J# ۏd?e \ AF /)pPN{[&C 6+Z\h}n[e+Gܖ*vn5c
ONo(2ЌV-:rZ*C}"MkXMcMo䴼x8fHԏ4O<7gX_ޟT5 bhza@4;B;kHI8US9.ilq|,V*\ݾm-6v"wJ˚N],el]*%)[3o,ԜG;o
7S?75ӄ9添c<GV&vC~1gq^/>cN=dX ٷ =Ƽ#h(?i? iVp۟qG"[¿ 2#
ϰPQ=$ߛm+c X]j0ޣL=s_CJq5fXL/[ %ʢgև*|:Q#G#Hg#8*=su0J1J-*[۽kv8xymnk?% 1Fһa#?
pJ66;պn*+#.No j**մ8SvblwjK;*=cYc
*itegw{촾IX뚔?5Ln <gS:QRǹ?!}rީ֩ig{'GiÑeO&gQLzs8>:ez%=peXbvnSHx.Y:ƜfI_[Y{PE cHP3M6Zʬ*dB<C siO' G ɤ*'*%+ _S-<M56/DJ#h*PHpocZ8z-(?$bU⋴
uh_U!mNoTsN7G*q<U\/TS)^Ӵ1'!*}fzgҴ^u~&ugO?]vIYzՉAW
R5Kfs3/%Px@ ˟ J}O8b?M#AV_?Q-ό?a_r ҙn
h> _F*)g!TN rQg|M5RK>7T+/Nwc#W
wggvU
lt:yit4t^4o,jz/?sbFuوr+1nKYzl{6t~iM,,=x5}]bK1 Oj5r~;*x$x&(Y+'&j{5 I?կMjD,n`A`/=q`&>El~}VK{|nAJO.+mA?qDJK ǚj%v-Ͱ*QQ][R.^*kF*p$xQޕ0ܑLs^_&8S_
ow@*,*CY0\oa1aO Rq.U'ʟ}nZY_M6 /%*SM1`v8aUEMl|}KK1*ފO''}WVy/ 2 *)># ۏd?e \ AF /)pWĵ
F?Ou4R+Z
cq"#k[K/Q)U!y-GnvoW5`3L^]'<%G_(4KU7.j~I/hykU[-ln+t*}W*OwWMO8φHgX3Wlsoz'?ibחxv_oud<Ev*9:mZ1; eU(Ji&gGͥս6}eOrF0+sl~g*)GklKLdys:8Z\.Wjkaqq-;:Ľ\
pnhbT&*${mJftmZG$ym段5N|8*UbvmZzGK ̹ o?J>p۟qG"[¿ 2#9?xwRuM@Aoܡ$!@:W]
Fퟡ`2̲AԜѫ5wz_w^[wi=F`,dԗC0x<E<M/
Izt6Yk|Qc\朤ܟQqu1ۓnyTAݖrT1t~(s_4bĺ~*HdҶk7aNMޯ'{[籡[j_Zx\8?CPn|/,qo+#+rVZ:17Խ&,{?(<0*k_[xXI&7.Ҍ(;*^RG^'ɧp]wI7*g=16H۸`YVfXTP+B*wZϵ'˟ J}O8b?M#AV_?Q-ό?a_r ҙn Pta(}f(^+ݯ۰
ӦR%c¸<xOwT[n}Nkž+D
U
Ӈĺ7V<\G
ƥ(SSvN=OIm*\I'$ĚƤI9>7̳u~%IZ ytgChTFNQi$ӻjJgA\;µsNfm{jejo4A@!K ̹ o?J# ۏd?e \ AF /)q攗FQ8m }kOcQnWcه泡kߕѬ( */X{:uݼҗ$Py˟Q䂃( *8?ŬVŔCwg#1]S|۟OW^YhۥNYس^~ܕ;7:C%ctti]~[f)ϕjX9mngUkv֫? \ ZS~? nDzi
*n|fq #
oY,ݶLѰFlp:qiI7ς*xs$崹Kk$*ENޘR2z4Y.mi@i1gB!'9`?*|F&kVluzujnrq n߁j*C
K⓲xkUψ?D*\#~RJI*<uurQFx7\i
ųw=xۏ^ϳ*>⾟3IeY;f4c;SӖ)Ϛl_heD&WFӳ?kPV5FA@ Sm+Of,s
UIg1"i_ZDX$jG@ T7}>sI9ݾu!K ̹ o?J# ۏd?e \ AF /)p~ѻr};**u'JJtݚ54YOsC?7q(>ocID|S;\W'{x'd*?<5Y8Λwk*o#JKܙf0|{tk*0̩*6>}kypz.Ov RH99J֕5QٻI.5bUE]]7toH\wjk5G.7ȚE;Ncҫ}ߊ_Y8BFҼK"0GjvvT#VQj2v*'K ̹ o?JSb?M#AV_?Q-ό?a_r ҙn P@ Cskotn`e HN;3
aQU*(UQ w199ݾZ
(s;<^(I$.(+qVt5%
U)4 ۣ'/T>.ԓ⳩ROoCͳ5p$MnKI[w%1K4*p9`:dMt>fx(#{+诽⿴˟ ># ۏd?e \ AF /)pP@ _PKlK)F]OҪ
)'%tu*aba<\$GAtMf%#Wk?HpS*<ygw#895~Z}ӟWSוwnVK0P@!K ̹ o?J# ۏ]-LV0A*Zw>_5b(ғNr/-}~* 2 _*?(g >i ?PEf?̿AO
,7 >e ZQfٸ/ }~* 0ϙ/֟Yn3| n ??q_ uA a 2 _*?(g >i ?PEf?̿AO
,7 >e ZQfٸ/ }~* 0ϙ/oG|ciJhVo˺k------=
Quand j'essaye d'ouvrir l'image corrompu avec Photoshop CS4 j'ai le message d'erreur suivant : "Impossible d'effectuer cette opration car le segment de marqueur JPEG est trop court (le fichier est peut-tre tronqu ou incomplet)"
Si quelqu'un voit la rponse...







Rpondre avec citation
Partager