doumowu7371 2013-02-20 19:34
浏览 89

将填写PDF的表单提交给PHP脚本,然后将PDF作为附件发送给

I have this script that it was posted a while back and it works, but ... In Safari works find (goes through the browser) not problem. FireFox & Opera forces you to open Acrobat reader. When you submit from Acrobat Reader (stand along) the php script submits sends the email with attachment but Acrobat Reader hangs "receiving data..." then times out. Email with attachment work fine. Chrome opens within browser submits the pdf but stays on the pdf page does not redirect. The attachment send from Chrome comes in the email but it is empty, the pdf file does not open. My question is: What is Acrobat Reader waiting to receive? and What is going on with Chrome?

Here is the code

$fileatt = date("d-m-Y-His") . ".pdf";  // Creates unique PDF name from the date 
copy('php://input',"pdfs/".$fileatt); // Copies the pdf form data to a folder named pdfs 
$fileatt = "pdfs/".$fileatt; // Path to the file gives the pdfs folder plus the unique       file name we just assigned
$fileatt_type = "application/pdf"; // File Type 
$fileatt_name = "Application Form_".$fileatt.".pdf"; // Filename that will be used for the   file as the attachment when it is sent

$email_from = "mywebsite"; // Who the email is from 
$email_subject = "Completed online Applications"; // The Subject of the email 
$email_message = "Please find a recent online application attached.
";
$email_message .= "Any problems please email me...
"; // Message that the email has in it 

$email_to = "youremail@yourserver.com"; // Who the email is to 

$headers = "From: ".$email_from;

//no need to change anything else under this point

$file = fopen($fileatt,'rb'); 
$data = fread($file,filesize($fileatt)); 
fclose($file); 

$semi_rand = md5(time()); 
$mime_boundary = "==Multipart_Boundary_x{$semi_rand}x"; 

$headers .= "
MIME-Version: 1.0
" . 
"Content-Type: multipart/mixed;
" . 
" boundary=\"{$mime_boundary}\""; 

$email_message .= "This is a multi-part message in MIME format.

" . 
"--{$mime_boundary}
" . 
"Content-Type:text/html; charset=\"iso-8859-1\"
" . 
"Content-Transfer-Encoding: 7bit

" . 
$email_message .= "

"; 

$data = chunk_split(base64_encode($data)); 

$email_message .= "--{$mime_boundary}
" . 
"Content-Type: {$fileatt_type};
" . 
" name=\"{$fileatt_name}\"
" . 
//"Content-Disposition: attachment;
" . 
//" filename=\"{$fileatt_name}\"
" . 
"Content-Transfer-Encoding: base64

" . 
$data .= "

" . 
"--{$mime_boundary}--
"; 

$ok = @mail($email_to, $email_subject, $email_message, $headers); 

if($ok) { 
  unlink($fileatt); //NOW WE DELETE THE FILE FROM THE FOLDER pdfs 
  Header("Location: nextpage.php"); //where do we go once the form has been submitted.

} else { 
  die("Sorry but the email could not be sent. Please go back and try again!"); 
} 
  • 写回答

1条回答 默认 最新

  • duanbin198788 2013-12-12 17:26
    关注

    Acrobat Reader is waiting for data... any data. Echo something which acknowledges receipt of the form. Chrome is sending an FDF, not a PDF. I don't think the attachment would actually be empty, but it's got to be able to open the PDF referred to in the FDF.

    评论

报告相同问题?

悬赏问题

  • ¥15 Vue3 大型图片数据拖动排序
  • ¥15 划分vlan后不通了
  • ¥15 GDI处理通道视频时总是带有白色锯齿
  • ¥20 用雷电模拟器安装百达屋apk一直闪退
  • ¥15 算能科技20240506咨询(拒绝大模型回答)
  • ¥15 自适应 AR 模型 参数估计Matlab程序
  • ¥100 角动量包络面如何用MATLAB绘制
  • ¥15 merge函数占用内存过大
  • ¥15 使用EMD去噪处理RML2016数据集时候的原理
  • ¥15 神经网络预测均方误差很小 但是图像上看着差别太大