Explorar o código

Bugfixes in MIME stuff

Luke Ehresman %!s(int64=25) %!d(string=hai) anos
pai
achega
004168712b
Modificáronse 2 ficheiros con 15 adicións e 13 borrados
  1. 13 10
      functions/mime.php
  2. 2 3
      src/download.php

+ 13 - 10
functions/mime.php

@@ -122,25 +122,29 @@
       /** this if statement checks for the entity to show as the primary message.  To
       /** this if statement checks for the entity to show as the primary message.  To
           add more of them, just put them in the order that is their priority.
           add more of them, just put them in the order that is their priority.
        **/
        **/
+      $id = $message["INFO"]["ID"];
+      $urlmailbox = urlencode($message["INFO"]["MAILBOX"]);
+      $body = "";
+
       if (containsType($message, "text", "html", $ent_num)) {
       if (containsType($message, "text", "html", $ent_num)) {
-         $body = decodeBody($message["ENTITIES"][$ent_num]["BODY"], $message["ENTITIES"][$ent_num]["ENCODING"]);
+         $body .= decodeBody($message["ENTITIES"][$ent_num]["BODY"], $message["ENTITIES"][$ent_num]["ENCODING"]);
       } else if (containsType($message, "text", "plain", $ent_num)) {
       } else if (containsType($message, "text", "plain", $ent_num)) {
-         $body = decodeBody($message["ENTITIES"][$ent_num]["BODY"], $message["ENTITIES"][$ent_num]["ENCODING"]);
-         $body = "<TT>" . nl2br($body) . "</TT>";
+         $tmpbody = decodeBody($message["ENTITIES"][$ent_num]["BODY"], $message["ENTITIES"][$ent_num]["ENCODING"]);
+         $body .= "<TT>" . nl2br($tmpbody) . "</TT>";
       }
       }
       // add other primary displaying message types here
       // add other primary displaying message types here
       else {
       else {
          // find any type that's displayable
          // find any type that's displayable
          if (containsType($message, "text", "any_type", $ent_num)) {
          if (containsType($message, "text", "any_type", $ent_num)) {
-            $body = decodeBody($message["ENTITIES"][$ent_num]["BODY"], $message["ENTITIES"][$ent_num]["ENCODING"]);
-            $body = "<TT>" . nl2br($body) . "</TT>";
+            $tmpbody = decodeBody($message["ENTITIES"][$ent_num]["BODY"], $message["ENTITIES"][$ent_num]["ENCODING"]);
+            $body .= "<TT>" . nl2br($tmpbody) . "</TT>";
          } else if (containsType($message, "message", "any_type", $ent_num)) {
          } else if (containsType($message, "message", "any_type", $ent_num)) {
-            $body = decodeBody($message["ENTITIES"][$ent_num]["BODY"], $message["ENTITIES"][$ent_num]["ENCODING"]);
-            $body = "<TT>" . nl2br($body) . "</TT>";
+            $tmpbody = decodeBody($message["ENTITIES"][$ent_num]["BODY"], $message["ENTITIES"][$ent_num]["ENCODING"]);
+            $body .= "<TT>" . nl2br($tmpbody) . "</TT>";
          }
          }
       }
       }
 
 
-      $body .= "<BR>";
+      $body .= "<BR><SMALL><CENTER><A HREF=\"../src/download.php?absolute_dl=true&passed_id=$id&passed_ent_id=$ent_num&mailbox=$urlmailbox\">Download this as a file</A></CENTER><BR></SMALL>";
 
 
       /** Display the ATTACHMENTS: message if there's more than one part **/
       /** Display the ATTACHMENTS: message if there's more than one part **/
       if (count($message["ENTITIES"]) > 1) {
       if (count($message["ENTITIES"]) > 1) {
@@ -160,8 +164,7 @@
             $num++;
             $num++;
             $filename = $message["ENTITIES"][$i]["FILENAME"];
             $filename = $message["ENTITIES"][$i]["FILENAME"];
             if (trim($filename) == "") {
             if (trim($filename) == "") {
-               $filename = "UNKNOWN_FORMAT_" . time() . $i;
-               $display_filename = "Attachment $i";
+               $display_filename = "untitled$i";
             } else {
             } else {
                $display_filename = $filename;
                $display_filename = $filename;
             }
             }

+ 2 - 3
src/download.php

@@ -32,7 +32,7 @@
    $filename = $message["ENTITIES"][$passed_ent_id]["FILENAME"];
    $filename = $message["ENTITIES"][$passed_ent_id]["FILENAME"];
 
 
    if (strlen($filename) < 1) {
    if (strlen($filename) < 1) {
-      $filename = "message" . time();
+      $filename = "untitled$passed_ent_id";
    }
    }
 
 
    if ($absolute_dl == "true") {
    if ($absolute_dl == "true") {
@@ -41,8 +41,7 @@
             $body = decodeBody($message["ENTITIES"][$passed_ent_id]["BODY"], $message["ENTITIES"][$passed_ent_id]["ENCODING"]);
             $body = decodeBody($message["ENTITIES"][$passed_ent_id]["BODY"], $message["ENTITIES"][$passed_ent_id]["ENCODING"]);
             header("Content-type: $type0/$type1");
             header("Content-type: $type0/$type1");
             header("Content-Disposition: attachment; filename=\"$filename\"");
             header("Content-Disposition: attachment; filename=\"$filename\"");
-            if ($type1 != "html")
-               echo nl2br($body);
+            echo $body;
             break;
             break;
          default:
          default:
             $body = decodeBody($message["ENTITIES"][$passed_ent_id]["BODY"], $message["ENTITIES"][$passed_ent_id]["ENCODING"]);
             $body = decodeBody($message["ENTITIES"][$passed_ent_id]["BODY"], $message["ENTITIES"][$passed_ent_id]["ENCODING"]);