Thomas L.: Formular mit Dateianhang

Beitrag lesen

Hallo Forumler,

ich hatte wegen meines oben genannten Problems hier nun schon einige Male geschrieben und damit sicher Eure Nerven sehr strapaziert. Dafür möchte ich mich hier jetzt einmal entschuldigen und gleichzeitig noch einmal für Eure großartige Hilfe danken.

  • Jetzt hat es anscheinend endlich geklappt. Manchmal sieht man halt den Wald vor lauter Bäumen nicht ;-)

Und doch habe ich hier noch einmal eine Bitte: Ich bin mir nicht sicher, ob das Script hundertprozentig in Ordnung ist. Daher bitte ich abschließend über unten stehende Zeilen zu sehen. Wäre wirklich riesig. Schon mal vielen Dank dafür. Ich bin echt über jeden Hinweis dankbar.

Freundliche Grüße
Thomas L.

session_start();

//Überprüfung des Upload-Feldes
if (isset($_FILES['file']['name']) && trim($_FILES['file']['name']) != "") {
   $max_attach_size = 2097152;
   if ($_FILES['file']['size'] > $max_attach_size) {
      $errors[] = "Attachment zu groß";
      }
   elseif ($_FILES['file']['error'] != UPLOAD_ERR_OK) {
      $errors[] = "Die Übertragung der Datei ist fehlgeschlagen";
      }
   else {
      $file_copy = "../tmp/".$_FILES['file']['name'];
      move_uploaded_file($_FILES['file']['tmp_name'],$file_copy);
      $_SESSION['file'] = $file_copy;
      $_SESSION['filetype'] = $_FILES['file']['type'];
      }
   }

//Attachment
if (isset($_SESSION['file'])) {
   $filename = basename($_SESSION['file']);
   $datei_content = fread(fopen($_SESSION['file'],"r"),filesize($_SESSION['file']));
   $datei_content = chunk_split(base64_encode($datei_content),76,"\n");
   $header .= "\n\n--$boundary";
   $header .= "\nContent-Type: ".$_SESSION['filetype']."; name="".$filename.""";
   $header .= "\nContent-Transfer-Encoding: base64";
   $header .= "\nContent-Disposition: attachment; filename="".$filename.""";
   $header .= "\n\n".$datei_content;
   }

//hochgeladene Datei löschen, wenn Mail verschickt wurde
if (isset($_SESSION['file'])) {
   unlink($_SESSION['file']);
   session_unset();
   session_destroy();
   }

//Formular
<form name="feedback" action="<? echo $PHP_SELF."?".session_name()."=".session_id(); ?>" method="post" enctype="multipart/form-data">

Attachment:<br>
<?php
if (isset($_SESSION['file'])) {
    $filename = basename($_SESSION['file']);
    echo "Die Datei ".$filename." wurde bereits hochgeladen.";
    }
else { ?><input type="file" name="file" size="40">
<?php } ?>

</form>