Dateiversenden im IE nicht möglich

FLASHStyler

Mitglied
Ich habe ein Script mit dem ich ein Bild auf den Server lade, es versende und lösche!
Alles klappt wunderbar, im OPERA und auch im FIREFOX. Allerdings streikt der IE.
Der hat irgendwas an dem Bild zu meckern.

PHP:
<?php
echo "<link rel='stylesheet' type='text/css' href='upload.css'><TABLE BORDER='0'><TR><TD><img src='try2.gif' border='0' width='280' height='100'></TD></TR></TABLE>";
?>
<?php

        $datei_max = "3000000"; // max. Dateigroesse in Byte
        $datei_ende = ".jpg"; // gewünschte Dateiendung
        $datei_mime = "image/jpeg";

        $time = time();

        $ziel .= date("d_m_y__H_i",$time).$datei_ende;

        $error_log = "<B>Folgende(r) Fehler sind (ist) aufgetreten:</B></br>></br>";

        function check_post_value($input,$error,$check)
        {
                if($check=='1'){
                                        if(empty($input)){
                                                return '<LI>Bitte geben Sie '.$error.' ein!</br>';
                    }
                } else {
                     if(!is_numeric($input)){
                        return '<LI>In dem Feld Mobile sind nur Zahlen erlaubt.</br>';
                     }
                }
        }


//Angaben überprüfen

          $error = '';

        $error .= check_post_value($_POST['name'],'Ihren Namen','1');
        $error .= check_post_value($_POST['adresse'],'Ihre Straße','1');
        $error .= check_post_value($_POST['plzort'],'Ihre(n) PLZ/ Ort','1');
        $error .= check_post_value($_POST['mobile'],'Ihre Nummer','1');
        $error .= check_post_value($_POST['nachricht'],'Ihre Nachricht','1');
        $error .= check_post_value($_POST['email'],'Ihre Emailaddresse','1');
        $error .= check_post_value($_POST['mobile'],'Mobile','0');


        if($file_size > $datei_max) {
                $error .= "<LI>Die Datei ist gr&ouml;&szlig;er als $datei_max Byte!</br>";
        }

        if($file_type != $datei_mime) {
                $error .= "<LI>Der Dateityp ist falsch! Die Datei muss vom Typ $datei_ende sein.</br>";
        }
        if(@file_exists($ziel) or !@copy($file, $ziel)) {
            $error .= "<LI>Ein Fehler beim Kopieren der Datei $file_name ist aufgetreten!</br>";
        }

        if($error) {
            echo($error_log . $error . "<br /><b>Die Email wurde nicht versendet. Vorgang abgebrochen!</b>");
                        @unlink($file);
        }

//mail
        $file = $ziel;
        $file_name = $ziel;
        $from = $_POST['email'];
        $to = "email adresse";
        $betreff = "Wild Obsseion - Try 2 be a Member";
        $boundary = strtoupper(md5(uniqid(time())));
        $message = 'Name:'.$_POST['name'].'
Email:'.$_POST['email'].'

Adresse:'.$_POST['adresse'].
$_POST['plzort'].'
Mobile: '.$_POST['mobile'].'

Nachricht:
'.$_POST['nachricht'];

        $mail_header  = "From:$from";
        $mail_header .= "\nContent-Type: multipart/mixed; boundary=$boundary";
        $mail_header .= "\n--$boundary";
        $mail_header .= "\nContent-Type: text/plain";
        $mail_header .= "\nContent-Transfer-Encoding: 8bit";
        //$mail_header .= "\n\n$message";
        $file_content = @fread(@fopen($file,"r"),@filesize($file));
        $file_content = @chunk_split(base64_encode($file_content));
        $mail_header .= "\n--$boundary";
        $mail_header .= "\nContent-Type: application/octetstream; name=\"$file_name\"";
        $mail_header .= "\nContent-Transfer-Encoding: base64";
        $mail_header .= "\nContent-Disposition: attachment; filename=\"$file_name\"";
        $mail_header .= "\n\n$file_content";
        $mail_header .= "\n--$boundary";

                if (empty($error)) {
                        @mail($to,$betreff,$message,$mail_header);
                        @unlink($ziel);
                        echo "<BR><font size='2'><b>Die Email wurde versendet. Vorgang beendet!</b></font>";
                        echo "<p><a href=\'javascript:window.close()\'>Fenster schliessen</a>";
        } else {
        echo "<p><a href='javascript:history.back()'>Zurück zum Formular</a>";
        }




?>
Dabei befindet sich die Datei anschliessend auf dem Server.
 
Naja, ich fülle das Formular aus, hänge ein Bild an, alles richtig.

Dann gibts mir der IE aus: Die Datei muss vom Typ JPG sein. oder Das Kopieren is fehlgeschlagen.
Wenn ich die überprüfung abschalte, also das hier:
PHP:
if($file_size > $datei_max) { 
                $error .= "<LI>Die Datei ist gr&ouml;&szlig;er als $datei_max Byte!</br>"; 
        } 

        if($file_type != $datei_mime) { 
                $error .= "<LI>Der Dateityp ist falsch! Die Datei muss vom Typ $datei_ende sein.</br>"; 
        } 
        if(@file_exists($ziel) or !@copy($file, $ziel)) { 
            $error .= "<LI>Ein Fehler beim Kopieren der Datei $file_name ist aufgetreten!</br>"; 
        } 

        if($error) { 
            echo($error_log . $error . "<br /><b>Die Email wurde nicht versendet. Vorgang abgebrochen!</b>"); 
                        @unlink($file); 
        }
Dann wird die mail versandt aber es ist kein Bild im Anhang.
 
Entschuldigung...
wie soll ich das anstellen :) ?


Auch wenn das der fall wäre... wieso hat er probleme mit der Kopieren der Datei auf den server, wenn ich die überprüfung abschalte...
 
Naja, Du ueberpruefst den uebergebenen Mime-Type doch mit dem erwuenschten.
Dann ist es doch wohl kein Problem den mal mit echo auszugeben.

Das Problem beim Kopieren koennte ein Problem im Script sein.
Ich nehme mal an, dass durch den falschen Mime-Type das File nicht geloescht wird.
Daher ist es bei der Ueberpruefung noch da und es wird Dein Fehler ausgegeben.
 
Ich kann mir nur nich erklären warum dies im IE der Fall ist...
in anderen Browsern funzelts einwandfrei!

edit:
im IE image/pjpeg
im FF image/jpeg
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück