2017-02-07 220 views
1

我想下載一個。 PDF文件按鈕提交,下面是我的代碼現在PHP:強制PDF文件下載

if(mail('[email protected]', '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) 
    } 

什麼情況是,發送電子郵件,但不能下載的文件,而不是網頁獲得重載和長字符被打印在屏幕上,

需要對此請

你的幫助,這是我得到enter image description here

+0

你不需要的內容長度爲這你應該使用Content-Length的? – Eamonn

+0

我擁有的全部就是這裏 – Sikander

+0

檢查瀏覽器的檢查器,看看標題是否設置正確。你的服務器可能會覆蓋它們。 – Eamonn

回答

0

我已經改變了頭一點點。我認爲正確的內容類型是application/pdf,並且一些標題不是必需的。

if(mail('[email protected]', '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)); 
0

檢查這個問題,首先你需要,如果你像如果你要下載圖片,然後 頭下載任何類型的文件添加內容類型('Content-Type:image/png'); if pdf then header(「Content-Type:application/pdf」);等

<?php 
if (mail('[email protected]', '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)); 

,如果你想別人下載文件與另一頭

+0

你應該*解釋*你的代碼是做什麼的。 –

+0

我有更新並解釋它 –