我是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);
}
}
?>
如果我做错了,请告诉我。
答案 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);
}
?>
希望能帮到像我这样的新手。
快乐的编码!