无法在php中下载文件。文件名通过url传递

时间:2014-03-03 14:07:27

标签: php

我只是PHP的初学者。我想在点击网址时下载图片文件。

当我对文件名进行硬编码时,它会起作用,但是当我尝试根据点击的网址下载不同的图像文件时,它不起作用。代码可能会以更好的方式解释它。

点击网址时的代码

<a href="./download.php?var=./img/Photo6.jpg" class="btn btn-2">Download brochure</a>

的download.php

<?php   
$var=$_GET['var'];
$filename=$var;
$filename = './img/Photo6.jpg'; // this works
//$filename = $var; // this does not work
header('Pragma: public');
header('Expires: 0');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Cache-Control: private', false); // required for certain browsers 
header('Content-Type: image/jpeg');

header('Content-Disposition: attachment; filename="'. basename($filename) . '";');
header('Content-Transfer-Encoding: binary');
header('Content-Length: ' . filesize($filename));

readfile($filename);

exit;
?>

请帮助。 感谢。

1 个答案:

答案 0 :(得分:0)

使用时:

$_GET['var'];

你期待一个带有?的url结构?在里面:

./download.php?var=./img/Photo6.jpg

在您的示例中:var =。/ img / Photo6.jpg,告诉php变量GET [var]将取值./img/Photo6.jpg

因此,基于点击的网址的不同图像文件必须具有

./download.php?var=XXX 

结构工作。确保您的所有网址都具有该结构。