我正在尝试按下提交下载。 pdf 文件,以下是我的代码
if(mail('myemail@gmail.com', 'Brochure Downloaded ', $string)){
$text= 'Your message recieved, We will contact you shrtly ';
$file_url = 'http://www.website.com/brochure.pdf';
header('Content-Type: application/octet-stream');
header("Content-Transfer-Encoding: Binary");
header("Content-disposition: attachment; filename=\"" . basename($file_url) . "\"");
readfile($file_url); // do the double-download-dance (dirty but worky)
}
现在发生的事情是发送电子邮件但是没有下载文件,而是重新加载页面并在屏幕上打印长字符,
需要你的帮助
答案 0 :(得分:0)
我已经改变了一些标题。我认为正确的内容类型是application/pdf
,并且一些标题不是必需的。
if(mail('myemail@gmail.com', 'Brochure Downloaded ', $string)){
$text= 'Your message recieved, We will contact you shrtly ';
$file_url = 'http://www.website.com/brochure.pdf';
header("Content-type:application/pdf");
header("Content-Disposition:attachment;filename='" . basename($file_url) . "'");
readfile($file_url); // do the double-download-dance (dirty but worky)
}
您还可以添加内容长度:
header('Content-Length: ' . filesize($file_url));
答案 1 :(得分:0)
检查此代码,如果您要下载任何类型文件,首先需要添加内容类型,如果您想下载图像 标题('Content-Type:image / png');如果是pdf那么 标题(“Content-Type:application / pdf”);等
<?php
if (mail('myemail@gmail.com', 'Brochure Downloaded ', $string)) {
$text = 'Your message recieved, We will contact you shrtly ';
$file_url = 'http://www.website.com/brochure.pdf';
header("Content-Description: File Transfer");
header("Content-Disposition: attachment; filename=$file_url");
header("Content-Type: application/pdf");
header("Content-Transfer-Encoding: binary");
readfile($file);
}
?>
你可以使用
header('Content-Length: ' . filesize($file_url));
如果您希望有人下载带有其他标题的文件
,则应使用Content-Length