2013-01-11 38 views
1

我正在構建一個腳本,將imap的腳本放入Google郵箱中,獲取消息並從正文中提取鏈接。該鏈接通過php打開時,會從外部源啓動PDF文件的下載過程。php force從動態鏈接下載pdf並存儲到本地文件夾

這是我需要做的:

  1. 編程方式打開它啓動一個下載
  2. 下載的PDF鏈接,繞過任何對話框明顯
  3. Store中的PDF文件到本地文件夾網絡服務器

我已經成功地開始下載過程並下載文件。但是,每次打開PDF文件的嘗試都會發現文件被破壞,我無法弄清楚原因。這是我現在正在嘗試的。以下是基於類似的話題。

$filename = http://cckk.ca/KE645R26/geico.com_SEO_Domain_Dashboard_20121101_00.pdf 

    header('Content-Description: File Transfer'); 
    header('Content-Type: application/pdf'); 
    header('Content-Disposition: attachment; filename="' . basename($filename) . '"'); 
    header('Content-Transfer-Encoding: binary'); 
    header('Expires: 0'); 
    header('Pragma: public'); 
    header('Content-Length: ' . filesize($filename)); 
    ob_clean(); 
    flush(); 
    readfile($filename); 
    exit; 

我在想,也許有一個文件名我傳遞的問題?

注:該腳本將被設置爲每隔幾秒就會在服務器上運行,以便不斷地從我們自己的郵箱中取一個cron任務,所以這不會有任何類型的用戶交互或對用戶造成安全風險。

+0

讓我編輯劇本的目的,澄清這個問題... –

+0

對不起,現在很清楚你想要做什麼。我起初想到當地人,你的意思是通過瀏覽器訪問本地人的硬盤,但我現在看到你說的是網絡服務器。我想你應該看看PHP的捲曲函數來獲取遠程文件。 – crush

+0

但是從我看到的所有內容中,示例使用內容標題獲取文件,或者我的應用程序不是出於同一目的? –

回答

5

嘗試:

$filename = 'http://cckk.ca/KE645R26/geico.com_SEO_Domain_Dashboard_20121101_00.pdf'; 

file_put_contents(
    '/your/server/path/folder/' . basename($filename), // where to save file 
    file_get_contents($filename) 
); 

exit; 
+0

給你檢查,因爲在技術上你是唯一一個有答案的人:) –

2

不能使用文件大小()上的遠程文件。很可能,該調用中的錯誤顯示在文件的開頭,從而破壞了它。

+0

+1,儘管這比評論更多的是評論。 – iambriansreed

相關問題