Page 1 of 1

unable to view pdf file sent as email attachment

Posted: Mon Nov 07, 2011 12:17 am
by shankari
I get the error:
Adobe reader could not open 'xxx.pdf' because it is either not a supported fiel type orbecause the file has been damaged(for example, it was sent as an email attachment and wasn't correctly decoded)

here is my php code
<?php

Code: Select all

$fpart=$_FILES["file"]["name"];
$to="xxx@hotmail.com";
$from="xxx@yahoo.com";
$subject="Event Registration - For approval";
$message="Event Registration Request.....";
$headers="From:".$from;
  $random_hash = md5(date('r', time()));

  $headers .= "\r\nContent-Type: multipart/mixed; boundary=\"PHP-mixed-".$random_hash."\"";
  $attachment = chunk_split(base64_encode(file_get_contents("Events/".$fpart)));

//mail($to,$subject,$message,$headers);

  $output = "
--PHP-mixed-$random_hash;
Content-Type: multipart/alternative; boundary='PHP-alt-$random_hash'
--PHP-alt-$random_hash
Content-Type: text/plain; charset='iso-8859-1'
Content-Transfer-Encoding: 7bit
 
Hello World!
This is the simple text version of the email message.
 
--PHP-alt-$random_hash
Content-Type: text/html; charset='iso-8859-1'
Content-Transfer-Encoding: 7bit
 
<h2>Hello World!</h2>
<p>This is the <b>HTML</b> version of the email message.</p>
 
--PHP-alt-$random_hash--
 
--PHP-mixed-$random_hash
Content-Type: application/zip; name={$fpart}
Content-Transfer-Encoding: base64
Content-Disposition: attachment
 
$attachment
--PHP-mixed-$random_hash--";
 
  echo @mail($to, $subject, $output, $headers);

}	
?>



Re: unable to view pdf file sent as email attachment

Posted: Mon Nov 07, 2011 1:55 am
by twinedev
Well, in one section you are assigning $fpart from the $_FILES variable, indicating that you are working with an uploaded file. However on the file_get_contents() function, you are trying to read the file from a specific location, which on most default server setups, would not be where PHP would keep the uploaded file.

Do you have code somewhere before this that takes the uploaded file and moves it to the Events folder?? One way to tell would be to look at the raw e-mail you are sending to make sure, does it appear to have a lot of data in the section where you expect the file to be?

Also one thing to note, you are saying the file type is application/zip, instead of pdf? (not sure if that would make a difference)

Re: unable to view pdf file sent as email attachment

Posted: Mon Nov 07, 2011 10:59 pm
by shankari
Here is the code that moves the uploaded file to the Events folder

Code: Select all

$file_name=$_FILES["file"]["name"];
if(file_exists("Events/".$fpart)) 
		{
		 //  echo $_FILES["file"]["name"]."already exists..";
		}
		else
		{
		move_uploaded_file($_FILES["file"]["tmp_name"],"Events/".$fpart);
                 	}

I am new to PHP can u fix the issues.. please

shankari

Re: unable to view pdf file sent as email attachment

Posted: Mon Nov 07, 2011 11:02 pm
by shankari
I missed a line. here is the updated one.

Code: Select all

$file_name=$_FILES["file"]["name"];
$fpart=$file_name;
if(file_exists("Events/".$fpart)) 
                {
                 //  echo $_FILES["file"]["name"]."already exists..";
                }
                else
                {
                move_uploaded_file($_FILES["file"]["tmp_name"],"Events/".$fpart);
                        }

Re: unable to view pdf file sent as email attachment

Posted: Tue Nov 08, 2011 7:31 am
by shankari
one more hitch

How do I send any type of file (pdf,/txt/doc/jpg) as an email attachment