无法在我的PHP代码

时间:2017-04-04 00:22:53

标签: php pdf download

我是PHP新手并试图通过代码实现以下功能

功能: 我有一个下载按钮,点击后我应该可以下载存储在htdocs下的.pdf文件 - > xxfilename - > abc.pdf;

代码: 我在xyz.php网页中使用下面的代码

<?php
$title = "Learning";
$content = '
            <h3> Intro</h3>
            <p> 
                Introduction goes here
            </p>
            <form action = "xyz.php" method = "post" name = "downloadform">
                <input type="submit" value="Download" name="dwnld_file"/>
            </form>
        ';
if (isset($_POST['dwnld_file'])) {
    mysql_connect("localhost", "root", "");
    mysql_select_db("PQR");
    $res = mysql_query("Select * from tab1");
    while ($row = mysql_fetch_array($res)) {
        $file = '$row["col2"]';
        header('Content-Type: application/pdf');
        header('Content-Disposition: attachment; filename="' . $row["col2"] . '"');
        header('Content-Transfer-Encoding: binary');
        header('Accept-Ranges: bytes');
        header('Content-Length:' . filesize($file));
        readfile($file);
    }
}
include 'Template.php';
?>

错误: 我的pdf文件正在下载,但在打开它时说“无法加载pdf文档”

请在我错的地方帮忙。

*** ****编辑 我尝试了不同的方法,我的文件正在下载但仍然说“无法加载pdf文档”

我的其他方法代码在

之下
<form action = "xyz.php" method = "post" name = "downloadform">
        <input type="submit" value="Download " name="dwnld_file"/>
    </form>
    <?php
    if (isset($_POST['dwnld_file'])) {
        mysql_connect("localhost", "root", "");
        mysql_select_db("test");
        $res = mysql_query("Select * from tab1");
        while ($row = mysql_fetch_array($res)) {
            $file = $row["col1"];
            echo $file;

            header('Content-Type: application/pdf');
            header('Content-Disposition: attachment; filename="' .$file. '"');
            header('Content-Transfer-Encoding: binary');
            header('Accept-Ranges: bytes');
            header('Content-Length:' . filesize($file));
            readfile('myfile/'.$file);
        }
    }
    ?>

如果我做错了,请告诉我。

1 个答案:

答案 0 :(得分:0)

我在做了一些研究之后实施了另一个解决方案,我能够解决问题。

以下是我用来实现的代码。

概念:

1)我们可以使用HTML + JSP + PHP来获得此功能。

2)在HTML + JSP端,我们需要调用eventListener来捕获单击按钮的事件。

3)此事件将重定向到php页面,该页面将pdf文件下载到您的本地计算机。

代码段:(此处XYZ是您要显示“下载”按钮的页面名称)

在XYZ.php中

<input type="button" id="btnshow" value="Download" name="dwnld" />
        <script>
            var btn = document.getElementById('btnshow');
            btn.addEventListener('click', function () {
                document.location.href = '<?php echo 'download.php'; ?>'
            })
        </script>

in download.php

<?php
mysql_connect("localhost", "root", "");
mysql_select_db("database_name");
$res = mysql_query("Select * from table_name");
while ($row = mysql_fetch_array($res)) {
    $file = 'Pdf_File/' . $row["Path"];
    $filename = $row["Path"];
    header('Content-Type: application/pdf');
    header('Content-Disposition: attachment; filename="' . $filename . '"');
    header('Content-Transfer-Encoding: binary');
    header('Accept-Ranges: bytes');
    readfile($file);
}
?>

希望能帮到像我这样的新手。

快乐的编码!