duanchuan6350 2013-08-01 13:14
浏览 41

提交后强制pdf文件下载

I have a form that submits to a php script which I would like to do the following:

  1. capture the user input via POST (done)
  2. send me an email with the user's details (done)
  3. start downloading a PDF from the same directory as the .php file (test.pdf) - HELP!

EDIT: FYI, I am calling the php via jquery:

$.ajax({
    type: "POST",
    url: php_url,
    data: $('#popForm').serialize(),
            success: function(){
           window.location.href = 'downloadpdf.php?file=test.pdf';
        }
    })

Here is the php code that captures the user input via POST and sends it to me via email. I just need a section that does #3, above.

<?php

$email_PGi = "me@mail.com";
$email_subject = "some email subject";


$firstname = $_POST['firstname']; 
$lastname = $_POST['lastname']; 

$email_message = "The following is a new message received via the website:

";

function clean_string($string) {
  $bad = array("content-type","bcc:","to:","cc:","href");
  return str_replace($bad,"",$string);
}

$email_message .= "First Name: ".clean_string($firstname)."
";
$email_message .= "Last Name: ".clean_string($lastname)."
";


// create email headers
$headers = 'From: '.$biz_email."
".
'Reply-To: '.$biz_email."
" .
'X-Mailer: PHP/' . phpversion();

@mail($email_PGi, $email_subject, $email_message, $headers);


?>

downloadpdf.php

<?php

$file = $_GET['file'];
header('Content-Type: Content-Type: application/pdf');
header('Content-Disposition: attachment; filename="' . basename($file) . '"');
header('Content-Length: ' . $file);
readfile($filename);
die();

?>
  • 写回答

4条回答 默认 最新

  • dourong4031 2013-08-01 13:21
    关注

    Use http://php.net/manual/en/function.file-get-contents.php to send the data along with your headers, not readfile.

    评论

报告相同问题?