Sent attachment received as empty attachment.txt?

Do you have a question? Post it now! No Registration Necessary.  Now with pictures!

Threaded View
Hi there, my problem is as follows:

When emailing a file using PHP 4.0.6, the attachment received is an
empty "attachment.txt" file instead of the actual file I attached.

Any suggestions why this might be? (php from a kindly newbie site enclosed)

Many thanks, Alan.

--------------begin extracted php---------------
       // initialize variables for
       // any errors
       $errors = "";
       $agreement = "no";


    // we'll begin by assigning the To address and message subject
    $subject="Test email";

    // get the sender's name and email address
    // we'll just plug them a variable to be used later
    $from =

    // generate a random string to be used as the boundary marker

    // store the file information to variables for easier access
    $tmp_name = $HTTP_FILES_VARS['filename']['tmp_name'];
    $type = $HTTP_FILES_VARS['filename']['type'];
    $name = $HTTP_FILES_VARS['filename']['name'];
    $size = $HTTP_FILES_VARS['filename']['size'];

    // here we'll hard code a text messge
    // again, in reality, you'll normally get this from the form submission
    $message = "Message sent by $from\n";

    // if the upload succeeded, the file will exist
    if (file_exists($tmp_name)){

       // check to make sure that it is an uploaded file and not a
system file

          // open the file for a binary read
          $file = fopen($tmp_name,'rb');

          // read the file content into a variable
          $data = fread($file,filesize($tmp_name));

          // close the file

          // now we encode it and split it into acceptable length lines
          $data = chunk_split(base64_encode($data));

       // now we'll build the message headers
       $headers = "From: $from\r\n" .
          "MIME-Version: 1.0\r\n" .
          "Content-Type: multipart/mixed;\r\n" .
          " boundary=\"\"";

       // next, we'll build the message body
       // note that we insert two dashes in front of the
       // MIME boundary when we use it
       $message = "This is a multi-part message in MIME format.\n\n" .
          "--\n" .
          "Content-Type: text/plain; charset=\"iso-8859-1\"\n" .
          "Content-Transfer-Encoding: 7bit\n\n" .
     $message . "\n\n";

       // now we'll insert a boundary to indicate we're starting the
       // we have to specify the content type, file name, and disposition as
       // an attachment, then add the file content and set another
boundary to
       // indicate that the end of the file has been reached
       $message .= "--\n" .
          "Content-Type: ;\n" .
          " name=\"\"\n" .
          //"Content-Disposition: attachment;\n" .
          //" filename=\"\"\n" .
          "Content-Transfer-Encoding: base64\n\n" .
          $data . "\n\n" .

       // now we just send the message
       if (@mail($to, $subject, $message, $headers))
          echo "Your message has been sent.";
          echo "Failed to send";
} else {
<p>Send an e-mail with an attachment:</p>
<form action="<?php echo $HTTP_SERVER_VARS['PHP_SELF']; ?>" method="post"
    enctype="multipart/form-data" name="form1">
    <p>From name: <input type="text" name="fromname"></p>
    <p>From e-mail: <input type="text" name="fromemail"></p>
    <p>File: <input type="file" name="filename"></p>
    <p><input type="submit" name="Submit" value="Submit"></p>
<?php } ?>
--------------end extracted php---------------

Re: Sent attachment received as empty attachment.txt?

Did you ever get this figured out?


Site Timeline