使用PHP强制图像下载无法正常工作

问题描述:

我有一个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

您需要先下载图片:

 $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