2016-11-25 91 views
0

我有一個100%的罰款圖像鏈接。我可以用它鏈接到圖像,我可以用它來顯示圖像。然而每當我嘗試使用PHP的頭文件強制下載圖片時,它都不起作用。下面是我使用的是什麼:使用PHP強制圖像下載無法正常工作

  $file = $link; 
      header('Content-Type: application/octet-stream'); 
      header('Content-Disposition: attachment; filename="'.basename($file).'"'); 
      header('Content-Length: ' . filesize($file)); 
      readfile($file); 

開始下載並問我在哪裏保存圖像,因爲它應該。然而,在圖像下載後,它不會打開。我在這裏做錯了什麼?

+0

什麼樣的形象是它 - 它是一個PNG或JPEG?這是否必須適用於? – WEBjuju

+0

我嘗試了你的代碼,它的作品非常完美..我認爲你的路徑存在問題...檢查你的路徑。\ –

+0

@WEBjuju Just JPEG。 – PL200

回答

0

您需要先下載圖片:

 $file = 'newimage.png'; 
     $file_contents = file_get_contents($link); 
     file_put_contents($file, $file_contents); 

然後你可以輸出的圖像:

 header('Content-type: image/jpeg'); 
     header('Content-Disposition: attachment; filename="'.basename($file).'"'); 
     header('Content-Length: ' . filesize($file)); 
     readfile($file); 
     exit(); 
+0

這仍然和我一樣有問題。 – PL200

+0

嘗試在讀取文件後添加一個退出以確保沒有其他事情正在進行。爲什麼你有$ file = $ link。這似乎違反直覺 - 什麼是$鏈接它是文件路徑本地在您的服務器上? – WEBjuju

+0

$ link是網站圖片的網址。 – PL200