Sent attachment received as empty attachment.txt?

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • a c s

    Sent attachment received as empty attachment.txt?

    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---------------
    <?php
    // initialize variables for
    // any errors
    $errors = "";
    $agreement = "no";

    if ($HTTP_SERVER_V ARS['REQUEST_METHOD ']=="POST"){


    // we'll begin by assigning the To address and message subject
    $to="hello@test domain.com";
    $subject="Test email";

    // get the sender's name and email address
    // we'll just plug them a variable to be used later
    $from =
    stripslashes($H TTP_POST_VARS['fromname'])."<".stripslas hes($HTTP_POST_ VARS['fromemail']).">";

    // generate a random string to be used as the boundary marker
    $mime_boundary= "==Multipart_Bo undary_x".md5(m t_rand())."x";

    // store the file information to variables for easier access
    $tmp_name = $HTTP_FILES_VAR S['filename']['tmp_name'];
    $type = $HTTP_FILES_VAR S['filename']['type'];
    $name = $HTTP_FILES_VAR S['filename']['name'];
    $size = $HTTP_FILES_VAR S['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($t mp_name)){

    // check to make sure that it is an uploaded file and not a
    system file
    if(is_uploaded_ file($tmp_name) ){

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

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

    // close the file
    fclose($file);

    // now we encode it and split it into acceptable length lines
    $data = chunk_split(bas e64_encode($dat a));
    }

    // 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=\"{$mi me_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" .
    "--{$mime_boundary }\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
    attachment
    // 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 .= "--{$mime_boundary }\n" .
    "Content-Type: {$type};\n" .
    " name=\"{$name}\ "\n" .
    //"Content-Disposition: attachment;\n" .
    //" filename=\"{$fi leatt_name}\"\n " .
    "Content-Transfer-Encoding: base64\n\n" .
    $data . "\n\n" .
    "--{$mime_boundary }--\n";

    // now we just send the message
    if (@mail($to, $subject, $message, $headers))
    echo "Your message has been sent.";
    else
    echo "Failed to send";
    }
    } else {
    ?>
    <p>Send an e-mail with an attachment:</p>
    <form action="<?php echo $HTTP_SERVER_VA RS['PHP_SELF']; ?>" method="post"
    enctype="multip art/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>
    </form>
    <?php } ?>
    --------------end extracted php---------------
  • hoopinfool

    #2
    Re: Sent attachment received as empty attachment.txt?

    Alan,
    Did you ever get this figured out?

    Thanks,
    Bob

    Comment

    Working...