Insertion image dans fichier.mht

Devcphpinvite
Invité n'ayant pas de compte PHPfrance

01 déc. 2008, 17:25

Bonjour,

dans le cadre d'un projet, j'utilise des modeles de document .mht (donf fichier web à fichier unique) dans quel je remplace des signets du genre %U% par des valeurs issus d'un formulaire.

je les enregistre au format .doc pour terminer.

Mon projet actuel a pour but d'inserer des images au sein de ce fichier.mht.Mais etant donné que le fichier .mht est unique je ne comprends pas la maniere dont sont enregistré les images.

Quelqu'un a t'il des sources idées sur ce genre de chose?le code à insérer concernant cette image...

merci à tous

ViPHP
ViPHP | 5924 Messages

01 déc. 2008, 22:24

C'est enregistré dans un format proche des mails multipart. Je te conseillerais de t'inspirer des techniques de mailing avec pièce jointe pour l'appliquer au format mhtml.

Devcphpinvite
Invité n'ayant pas de compte PHPfrance

05 déc. 2008, 12:48

Merci pour ton aide, te sliens sont pas mal

mais si j'ai bien compris les seules lignes qui me sont utiles sont les suivantes :

Code : Tout sélectionner

//----------------------------------------------- //GENERE LA FRONTIERE DU MAIL ENTRE TEXTE ET HTML //----------------------------------------------- $frontiere = '-----=' . md5(uniqid(mt_rand())); //PIECE JOINTE //----------------------------------------------- $message .= 'Content-Type: image/jpeg; name="nom_du_fichier.jpg"'."\n"; $message .= 'Content-Transfer-Encoding: base64'."\n"; $message .= 'Content-Disposition:attachement; filename="nom_du_fichier.jpg"'."\n\n"; $message .= chunk_split(base64_encode(file_get_contents('nom_du_fichier.jpg')))."\n";
en effet, le code d'une image dans un fichier .mht est a peu pres le suivant:

Code : Tout sélectionner

<!--[if gte vml 1]> <v:shapetype id=3D"_x0000_t75" coordsize=3D"21600,21600" o:spt=3D"75" o:preferrelative=3D"t" path=3D"m@4@5l@4@11@9@11@9@5xe" filled=3D"f" stroked=3D"f"> <v:stroke joinstyle=3D"miter"/> <v:formulas> <v:f eqn=3D"if lineDrawn pixelLineWidth 0"/> <v:f eqn=3D"sum @0 1 0"/> <v:f eqn=3D"sum 0 0 @1"/> <v:f eqn=3D"prod @2 1 2"/> <v:f eqn=3D"prod @3 21600 pixelWidth"/> <v:f eqn=3D"prod @3 21600 pixelHeight"/> <v:f eqn=3D"sum @0 0 1"/> <v:f eqn=3D"prod @6 1 2"/> <v:f eqn=3D"prod @7 21600 pixelWidth"/> <v:f eqn=3D"sum @8 21600 0"/> <v:f eqn=3D"prod @7 21600 pixelHeight"/> <v:f eqn=3D"sum @10 21600 0"/> </v:formulas> <v:path o:extrusionok=3D"f" gradientshapeok=3D"t" o:connecttype=3D"rect"/> <o:lock v:ext=3D"edit" aspectratio=3D"t"/> </v:shapetype> <v:shape id=3D"Image_x0020_0" o:spid=3D"_x0000_i1025" type=3D"#_x0000_t75" alt=3D"Comparatif.png" style=3D'width:453pt;height:246pt;visibility:visibl= e;mso-wrap-style:square'> <v:imagedata src=3D"NouveauDocumentMicrosoftOfficeWord_fichiers/image001.png"o:title=3D"Comparatif"/> </v:shape> <![endif]-->
et apres la derniere balise </html>

Code : Tout sélectionner

------=_NextPart_01C956C8.F3DF37B0 qui correspond à la frontiere dont tu me parlais Content-Location: file:///C:/8C7D4AA4/NouveauDocumentMicrosoftOfficeWord_fichiers/image001.png Content-Transfer-Encoding: base64 Content-Type: image/png

ViPHP
ViPHP | 5924 Messages

05 déc. 2008, 14:14

Ouais voilà, tu as compris. Si tu as commencé à coder quelquechose, tu peux le poster.