php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger

PHP Einsteiger PHP Problemlösungen für Spracheinsteiger
Archive: 2004, 2004/2, 2005, 2005/2, 2006, 2007, 2008, 2009, 2010,

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 09.11.2011, 13:18  
tommylee
Gast
 
Beiträge: n/a
Standard [Erledigt] base_64 images decoden aus Mails

Hallo,

ich baue momentan an einem webmailer welcher im ersten Step alle eingehenden Mails korrekt anzeigen soll. Für mich momentan schier unlösbar ist die korrekte Darstellung von base_64 codierten .jpeg, .gif usw. Bildern welche als Anhang oder als Inline mitgeliefert werden.

Ergebnis beim verwenden von unten stehenden Codeschnipseln ergibt immer nur Zeichensalat wie [entfernt]...usw.

Die Variable $content ergibt dann den Inhalt aller ausgelesenen mails.
Das Gesamtscript liest alle Parts korrekt aus...der Teil mit der Fallunterscheidung für ein GIF sieht so aus:

PHP-Code:
.... if (strtoupper($parts[$i]->subtype) == "GIF" && $parts[$i]->encoding == && strtoupper($parts[$i]->disposition) == "INLINE"){
$pic.=imap_fetchbody($mbox$mid$partstring); 
$content.="<img src=\"data:image/gif;base64,".base64_decode($pic).">";}.... 
der für ein JPEG so:

PHP-Code:
 ... if (strtoupper($parts[$i]->subtype) == "JPEG" && $parts[$i]->encoding == && strtoupper($parts[$i]->disposition) == "ATTACHMENT"){
$pic.=imap_fetchbody($mbox$mid$partstring); 
$content.="<img src=\"data:image/jpeg;base64,".base64_decode($pic).">";....

Mein Ziel ist die korrekte Anzeige der Bilder im Browser...aber ich finde auch nach längeren suchen einfach keine Ansätze...


Ich bin für jeden zielführenden Hinweis dankbar !!

Gruss und Danke im voraus !

Geändert von ChrisB (09.11.2011 um 13:36 Uhr). Grund: Zeichensalat entfernt, da das Forum damit nicht klar kommt
  Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 09.11.2011, 13:32  
fab
Erfahrener Benutzer
 
Benutzerbild von fab
 
Registriert seit: 28.07.2010
Beiträge: 2.308
PHP-Kenntnisse:
Fortgeschritten
fab ist ein Lichtblickfab ist ein Lichtblickfab ist ein Lichtblickfab ist ein Lichtblickfab ist ein Lichtblick
Standard

Zitat:
Zitat von tommylee Beitrag anzeigen
unten stehenden Codeschnipseln
Ah ja... die sehe ich jetzt erst beim Zitieren

Zitat:
PHP-Code:
"<img src=\"data:image/jpeg;base64,".base64_decode($pic).">";....

Dann überleg mal.. warum schreibt man wohl data:image/jpeg;base64, ?
fab ist offline   Mit Zitat antworten
Alt 09.11.2011, 14:12  
Erfahrener Benutzer
 
Benutzerbild von tr0y
 
Registriert seit: 26.07.2010
Beiträge: 4.874
PHP-Kenntnisse:
Fortgeschritten
tr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblick
tr0y eine Nachricht über MSN schicken
Standard

de~-Methoden kehren en~-Methoden um.

soll heißen: was *_encode zusammenpackt, packt *_decode wieder aus.
__________________
Lasse mir ohne Anwendung von Gewalt Dinge schenken, Amazon weiß darüber bald mehr.
tr0y ist gerade online   Mit Zitat antworten
Alt 09.11.2011, 14:46  
tommylee
Gast
 
Beiträge: n/a
Standard

hallo,

vielen Dank ...habe den Code geändert auf

PHP-Code:
 if (strtoupper($parts[$i]->subtype) == "JPEG" && $parts[$i]->encoding == && strtoupper($parts[$i]->disposition) == "ATTACHMENT"){
$pic=imap_fetchbody($mbox$mid$partstring); 
//echo var_dump($pic);
$pic_jpg=base64_decode($pic);
$content.="<img src=\"data:image/jpeg;base64,".$pic_jpg.">";
}
                if (
strtoupper($parts[$i]->subtype) == "GIF" && $parts[$i]->encoding == && strtoupper($parts[$i]->disposition) == "INLINE"){
$pic.=imap_fetchbody($mbox$mid$partstring); 
$pic_gif=base64_decode($pic);
$content.="<img src=\"data:image/gif;base64,".$pic_gif.">";} 
Ergebnis leider unverändert...es kommen nicht mal mehr die "normalen" base_64 Zeichen sondern nur Kauderwelsch mit lauter Vierecken + Buchstabe/Zahlen.
Wenn ich den Dump-Inhalt ausgebe kommt wenigstens der base_64-kodierte Teil im Browser ...aber es wird eben kein Bild draus...

Any Ideas ?
  Mit Zitat antworten
Alt 09.11.2011, 14:49  
fab
Erfahrener Benutzer
 
Benutzerbild von fab
 
Registriert seit: 28.07.2010
Beiträge: 2.308
PHP-Kenntnisse:
Fortgeschritten
fab ist ein Lichtblickfab ist ein Lichtblickfab ist ein Lichtblickfab ist ein Lichtblickfab ist ein Lichtblick
Standard

PHP-Code:
$pic_jpg=base64_decode($pic); 
Was soll daran jetzt anders funktionieren? Ich glaube dir ist immer noch nicht klar, dass base64_decode wieder Binärcode liefert. Du hast base64, du brauchst base64, da musst du überhaupt nichts umkodieren.
fab ist offline   Mit Zitat antworten
Alt 09.11.2011, 15:22  
tommylee
Gast
 
Beiträge: n/a
Standard

danke fab...

jetzt siehts so aus... (nur GIF)

PHP-Code:
 if (strtoupper($parts[$i]->subtype) == "GIF" && $parts[$i]->encoding == && strtoupper($parts[$i]->disposition) == "INLINE"){
$pic.=imap_fetchbody($mbox$mid$partstring); 
$pic_gif=base64_decode($pic);
$content.="<img src=".$pic.">";} 
im Browser ist das Kauderwelsch weg...Bilder sind keine..nur die Platzhalterzeichen und im Quelltext steht aber der base_64-Code...

Auszug:<img src=/9j/4AAQSkZJRgABAQEAYABgAAD/......

muss die src-Angabe weg und die Ausgabe anders gestaltete werden...src= hat ja keine Referenz auf ein Bildresource..

lasse ich die src-Angabe weg wird wieder nur der base_64 code im browser ausgegeben....

Gruß
  Mit Zitat antworten
Alt 09.11.2011, 15:28  
fab
Erfahrener Benutzer
 
Benutzerbild von fab
 
Registriert seit: 28.07.2010
Beiträge: 2.308
PHP-Kenntnisse:
Fortgeschritten
fab ist ein Lichtblickfab ist ein Lichtblickfab ist ein Lichtblickfab ist ein Lichtblickfab ist ein Lichtblick
Standard

Es hat niemand gesagt dass du "data:image/gif;base64," weglassen sollst.....
fab ist offline   Mit Zitat antworten
Alt 09.11.2011, 15:30  
Moderator¹
 
Registriert seit: 28.03.2010
Beiträge: 7.470
PHP-Kenntnisse:
Fortgeschritten
ChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer Anblick
Standard

Zitat:
Zitat von tommylee Beitrag anzeigen
Auszug:<img src=/9j/4AAQSkZJRgABAQEAYABgAAD/......
Und wo ist jetzt data:image/gif;base64, geblieben, um dem Browser auch zu sagen, was für eine Art von „Adresse“ das sein soll?

Möchtest du dich nicht erst mal mit den Grundlagen dieser Art von Bildeinbindung beschäftigen, anstatt hier per trial-and-error wild herum zu raten?
__________________
RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
ChrisB ist offline   Mit Zitat antworten
Alt 09.11.2011, 15:36  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Zitat:
Auszug:<img src=/9j/4AAQSkZJRgABAQEAYABgAAD/......
Au man, das tut ja schon weh.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline   Mit Zitat antworten
Alt 10.11.2011, 08:48  
tommylee
Gast
 
Beiträge: n/a
Standard

klar tuts weh...

wie üblich: der Teufel steckte im Detail-->

$content.="<img src=\"data:image/gif;base64,".$pic."\">";}

...einfach ein Backslash + Anführungszeichen zu wenig...dadurch wurde die base_64-Ausgabe zerschossen...

Danke allen für die Antworten !!

Geändert von tommylee (10.11.2011 um 08:50 Uhr). Grund: Fehler im Text
  Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
WP Bannerize - Zugriff auf die Images Gsiberger PHP Einsteiger 2 29.04.2011 21:37
Nur eingetroffene Mails auslesen mit IMAP Lollix PHP Tipps 2010 2 07.09.2010 19:54
variable mit onclick an php drombusch PHP Tipps 2009 8 30.08.2009 14:45
mails kommen nicht an DarkManX PHP Tipps 2008 2 24.10.2008 13:26
Mails per PHP versenden Damian Meier Server, Hosting und Workstations 3 12.10.2008 02:18
[Erledigt] JSON in java encoden und in PHP decoden ? YAT PHP-Fortgeschrittene 44 08.10.2008 13:45
[Erledigt] imap_body richtig decoden /MIMETypen/Mail_mimeDecode PHP Tipps 2007 15 08.07.2007 13:16
HILFE: zurücksenden von Mails deren Mailadresse falsch ist PHP Tipps 2006 3 01.05.2006 12:50
Mails kommen nicht an mit Hamster/Mercury bicpi PHP-Fortgeschrittene 10 26.10.2005 15:03
Zwei SubmitButtons mit Images Bronks HTML, Usability und Barrierefreiheit 3 28.09.2005 17:33
mail() versucht die Mails als wwwrun an den SMTP Server zu l Server, Hosting und Workstations 3 15.06.2005 11:25
Timeout beim Mails versenden PHP-Fortgeschrittene 5 08.03.2005 15:48
Suche mehrere Images........ Beitragsarchiv 7 10.01.2005 08:07
Mails mit PHP empfangen themonk PHP Tipps 2005 11 04.01.2005 20:09
[Erledigt] Mails und MySQL Datenbanken 2 10.06.2004 13:25

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
if (strtoupper($parts[$i]->disposition) == \attachment\), data:image/jpeg;base64 base64_decode

Alle Zeitangaben in WEZ +2. Es ist jetzt 16:23 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum