使用php表单下载图像

时间:2012-06-27 06:45:07

标签: php download

我需要使用提交按钮从页面下载特​​定图像,所以我使用表单和php提交操作,这里是我的HTML和PHP代码

HTML代码

<form name="logo" action="" method="post">
<input type="hidden" name="lgpath" value="images/logo/<?php echo $SelPro['lgpat'];?>">
    <img src="images/cmplogo/<?php echo $SelPro['lgpat'];?>">               
    <div><input type="submit" value="<?php echo $SelPro['lgname'];?>" name="dwnlg" id="dwnlg"></div></div>
    </form>

PHP代码

<?php
    if($_POST['dwnlg'])
    {
        $LgPath=$_POST['lgpath'];
        header('Content-Disposition: attachment; filename="'.$LgPath.'"');
    }
?>

我提供了将图像下载到标题的路径,但它只下载了当前页面作为文件,我该如何解决?

2 个答案:

答案 0 :(得分:2)

请尝试以下代码下载

<?php 
    if($_POST['dwnlg'])
    {
        $LgPath=$_POST['lgpath'];
        header("Content-type: image/jpeg");  
        header('Content-Disposition: attachment; filename="'.$LgPath.'"');  
        header('Content-Transfer-Encoding: binary');
        header('Expires: 0');
        header("Cache-Control: public");
        header('Cache-Control: must-revalidate');
        header('Pragma: public');
        header('Content-Length: ' . filesize($LgPath));
        readfile($LgPath);  
     }
?>  

在内容类型中:

         if your image is in png format then it will be :
         header("Content-type: image/png");
         if your image is in jpeg format then it will be :
         header("Content-type: image/jpeg");

答案 1 :(得分:0)

设置标题只是告诉客户端数据是什么以及如何使用它,它不会发送数据。

您可以使用readfile来执行此操作

<?php
    if($_POST['dwnlg'])
    {
        $LgPath=$_POST['lgpath'];
        header('Content-Disposition: attachment; filename="'.$LgPath.'"');
        readfile($LgPath);
    }
?>