用于下载图像的PHP编码

时间:2016-04-29 11:26:13

标签: php

Browser download location 在网站页面中包含许多带有下载选项的图像。如果我单击下载按钮,它会自动下载到用户系统上,并显示在浏览器可下载页面上。我有像

这样的PHP代码
$image = file_get_contents('http://website.com/images/logo.png');
file_put_contents('C:/Users/ASUS/Downloads/image.jpg', $image);

以上编码工作正常。但是我需要提供要保存的图像的路径名。在用户方面,我们不知道路径。

我需要PHP代码才能使用浏览器下载位置并下载图片需要显示浏览器下载。

4 个答案:

答案 0 :(得分:1)

   $filename = '/images/'.basename($_POST['text']);
   file_put_contents($filename, $content);

答案 1 :(得分:0)

您必须在网络服务器上的某处保存/下载图像,然后使用标题功能将文件发送给用户,例如:

$file = 'path_to_image';
if (file_exists($file)) {
    header('Content-Description: File Transfer');
    header('Content-Type: application/octet-stream');
    header('Content-Disposition: attachment; filename="'.basename($file).'"');
    header('Expires: 0');
    header('Cache-Control: must-revalidate');
    header('Pragma: public');
    header('Content-Length: ' . filesize($file));
    readfile($file);
    exit;
}
else {
    echo "file not exists";
}

manual

答案 2 :(得分:0)

由于安全问题,

无法将图像存储在特定的用户位置。您不能强迫用户。您必须建议他存储特定位置。而且您也不知道文件系统是什么在用户系统中,并且用户可以在任何地方设置下载路径,这样你就无法得到它。

答案 3 :(得分:0)

`<?php  
   $filename ='http://website.com/images/logo.png'; 
   $size = @getimagesize($filename); 
   $fp = @fopen($filename, "rb"); 
   if ($size && $fp) 
   { 
      header("Content-type: {$size['mime']}"); 
      header("Content-Length: " . filesize($filename)); 
      header("Content-Disposition: attachment; filename=$filename"); 
      header('Content-Transfer-Encoding: binary'); 
      header('Cache-Control: must-revalidate, post-check=0, pre-check=0');        
      fpassthru($fp); 
      exit; 
   } 
   header("HTTP/1.0 404 Not Found"); 
?>`