让浏览器使用特定名称来下载文件

时间:2013-06-09 14:04:37

标签: php http-headers

我无法让浏览器提示用户使用正确的名称保存图像。

  • 我的网络根目录是/var/www/html
  • 我在/var/www/client/image.jpg
  • 中有一张图片(.jpg)

由于多种原因,这两件事情无法改变

我在/var/www/html中有一个文件dImage.php,我正在执行以下操作以使浏览器下载,而不是查看文件。

$fileName = '/var/www/client/image.jpg';    

header('Content-disposition: attachment; filename="' . $fileName . '"');
header('Content-type: image/jpeg');
readfile($fullpath);

在IE中,我被提示下载 dImage.jpg

在Firefox中,我被提示下载 dImage.php ,这是一个:JPEG图像。当我下载文件时,它会保存为.php文件,一旦更改了扩展名,就会以图像的形式打开。

是否可以让浏览器提示用户将文件保存为 image.jpg ,无论使用何种浏览器?

1 个答案:

答案 0 :(得分:0)

您显示的代码将生成一个名为“/var/www/client/image.jpg”的文件,该文件显然不是有效的文件名,这就是您的文件在脚本之后命名的原因。

$fileName是输出文件的所需名称,
$fullpath应该是所需文件的绝对路径,php的相对路径不像HTML的路径那样工作。 '/'不会指向文档根文件夹。