Ankündigung

Einklappen
Keine Ankündigung bisher.

Warning: fread(): supplied argument is not a valid stream resource...

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • pixelprinzessin
    antwortet
    Dann schickt es garnichts ab. Wenn ich keine Datei auswähle, kommt dann eine Fehlermeldung. Aber eigentlich ist es ja kein Fehler, weil man muss ja nicht zwingend etwas hochladen.

    Einen Kommentar schreiben:


  • David
    antwortet
    Zitat von pixelprinzessin Beitrag anzeigen
    Waahh jetz seh ich garnich mehr durch ^^
    Was passiert denn, wenn meine Änderungen eingebaut sind?

    Einen Kommentar schreiben:


  • pixelprinzessin
    antwortet
    Waahh jetz seh ich garnich mehr durch ^^

    @HPR: Das komische ist ja, es ging alles bevor ich nicht Code geändert hatte...
    und deswegen ist ja die if else funktion da

    PHP-Code:
    if(!empty($_POST['Anhang'])){
            
    $Header .= "Datei: \n";
              
    $Header .= "Es wurde keine Datei übergeben.";
            } 
            else {
            
    $Header .= "Content-Type: ";
              
    $Header .= $_FILES['Anhang']['type'];
              
    $Header .= "; name=";
              
    $Header .= $_FILES['Anhang']['name'];
              
    $Header .= "\n";
              
    $Header .= "Content-Transfer-Encoding: base64";
              
    $Header .= "\n";
              
    $Header .= "Content-Disposition: attachment; filename=";
             
    $Header .= $_FILES['Anhang']['name'];
              
    $Header .= "\n\n";
              
    $Dateiinhalt fread(fopen($_FILES['Anhang']['tmp_name'], "r"), $_FILES['Anhang']['size']);
              
    $Header .= chunk_split(base64_encode($Dateiinhalt));
              
    $Header .= "\n";
              
    $Header .= "--$Trenner--";
            } 
    Wenn der Anhang leer ist, wird keine Datei übergeben und wenn nicht dann kommt halt der Rest. Und so soll es ja auch sein, weil ja nicht alle ein Bild mitschicken... Ich weiß bloß nicht wo jetzt der Fehler ist... Weil es ja wie gesagt vorher ging bevor ich nicht die einzelnen Fehlermeldungen eingebaut habe... Versteht ihr wie ich das meine? ^^

    LG Denise

    Einen Kommentar schreiben:


  • David
    antwortet
    Erstmal der Teil, der Dich vermutlich nicht interessiert: Es wäre so viel einfacher, wenn Du eine fertige, funktionierende Email-Klasse nehmen würdest. Mir wurde neulich swiftmailer als Ersatz für phpmailer gezeigt und ich finde es bisher super.

    Wenn sich fread() über das Filehandle beschwert, dann ist wohl fopen() fehlgeschlagen. Du kannst das eh einfacher mit file_get_contents() lösen.
    Aber insgesamt solltest Du erstmal die Werte von $_FILES abtesten. Der Upload kann auch schief gehen.
    PHP-Code:
    if(empty($_REQUEST['strasse']) || empty($_REQUEST['plzort']))
    {
        
    $fehler['strasse'] = "Bitte geben Sie Ihre gesamte Adresse an!";


    if (!isset(
    $_FILES['Anhang']))
    {
        
    $fehler[] = 'kein upload';
    }
    else if(
    $_FILES['Anhang']['error']!=0)
    {
        
    $fehler[] = 'Fehler beim Upload. #'.$_FILES['Anhang']['error'];
    }
    else if(!
    is_readable($_FILES['Anhang']['tmp_name']))
    {
        
    $fehler[] = 'temporäre Datei kann nicht eingelesen werden';
    }

    if(
    count($fehler)>0)
    {
        foreach (
    $fehler as $msg)
        { 
            echo 
    "<p align=\"center\">$msg";
        }
        echo 
    "<br /><br /><b><a href=\"javascript:history.back();\">zurück</a></b></p>";
    }
    else
    {
        
    $Header .= "Content-Type: ";
        
    $Header .= $_FILES['Anhang']['type'];
        
    $Header .= "; name=";
        
    $Header .= $_FILES['Anhang']['name'];
        
    $Header .= "\n";
        
    $Header .= "Content-Transfer-Encoding: base64";
        
    $Header .= "\n";
        
    $Header .= "Content-Disposition: attachment; filename=";
        
    $Header .= $_FILES['Anhang']['name'];
        
    $Header .= "\n\n";
        
    $Dateiinhalt file_get_contents($_FILES['Anhang']['tmp_name']);
        
    $Header .= chunk_split(base64_encode($Dateiinhalt));
        
    $Header .= "\n";
        
    $Header .= "--$Trenner--";

    Einen Kommentar schreiben:


  • HPR1974
    antwortet
    if(is_uploaded_file() ist dein Freund hier:

    $Dateiinhalt = fread(fopen($_FILES['Anhang']['tmp_name'], "r"), $_FILES['Anhang']['size']);

    Einen Kommentar schreiben:


  • HPR1974
    antwortet
    was erwartest Du denn von fopen wenn Du keine Datei übergibst...

    Einen Kommentar schreiben:

Lädt...
X