Datei = Buchstabensalat

e-arty

Mitglied
Hallo liebes Forum,

wieder einmal muss ich euch mit meinem gefährlichen Halbwissen beheligen. Wenn ich eine Datei versenden, krieg ich bei folgendem Script immer nur Buchstabensalat heraus. Kann mir jemand sagen, wo der Fehler beim Codieren der Datei liegt. Danke schön. :)

PHP:
$file = $email["attachment"]; 
$filename=$_FILES['datei']['name'];
$filecontent = fread(fopen($file,"r"),filesize($file));
$filecontent = chunk_split(base64_encode($filecontent));
$mail_header .= "\n--".$boundary; 
$mail_header .= "\nContent-Type: application/octet-stream; name=\"".$filename."\n\n\""; 
$mail_header .= "\nContent-Transfer-Encoding: base64"; 
$mail_header .= "\nContent-Disposition: attachment; filename=\"".$filename."\n\n\""; 
$mail_header .= "\n\n".$filecontent;
 
Erledigt.

Hat so auszusehen.
PHP:
$file = $email["attachment"]; 
$filename=$_FILES['datei']['name']; 
$mail_header .= "\n"; 
$mail_header .= "--$boundary"; 
$mail_header .= "\n"; 
$mail_header .= "Content-Type: application/octet-stream; name=$filename"; 
$mail_header .= "\n"; 
$mail_header .= "Content-Transfer-Encoding: base64"; 
$mail_header .= "\n"; 
$mail_header .= "Content-Disposition: attachment; filename=$filename"; 
$mail_header .= "\n\n"; 
$filecontent .= fread(fopen($file, "r"), filesize($file)); 
$mail_header .= chunk_split(base64_encode($filecontent)); 
$mail_mail_header .= "\n"; 
$mail_header .= "--$boundary--";
 
Code:
$mail_header .= "--$boundary";

was möchtest du damit? die Variable $boundary um 1 verkleinern und dann das in den mail header schreiben? Dann kannst du die " weglassen. Musst du nicht aber ist sauberer.

PHP:
$file = $email["attachment"]; 
$filename=$_FILES['datei']['name']; 
$filecontent = fread(fopen($file,"r"),filesize($file)); 
$filecontent = chunk_split(base64_encode($filecontent)); 
$mail_header .= "\n--".$boundary; 
$mail_header .= "\nContent-Type: application/octet-stream; name=\"".$filename."\n\n\""; 
$mail_header .= "\nContent-Transfer-Encoding: base64"; 
$mail_header .= "\nContent-Disposition: attachment; filename=\"".$filename."\n\n\""; 
$mail_header .= "\n\n".$filecontent;

Klar das das nicht gehöt. Da es $boundary nicht um 1 verkleinert sonder folgendes anzeigt

\n -- [wert von $boundary]

So könntest du es auch machen

PHP:
$file = $email["attachment"]; 
$filename=$_FILES['datei']['name']; 
$filecontent = fread(fopen($file,"r"),filesize($file)); 
$filecontent = chunk_split(base64_encode($filecontent)); 
$mail_header .= "\n".--$boundary; 
$mail_header .= "\nContent-Type: application/octet-stream; name=\"".$filename."\n\n\""; 
$mail_header .= "\nContent-Transfer-Encoding: base64"; 
$mail_header .= "\nContent-Disposition: attachment; filename=\"".$filename."\n\n\""; 
$mail_header .= "\n\n".$filecontent;

MFG
redX
 
Zurück