PHP 下载按钮,无需提交回页面
php download button without submiting back to page
我有问题,我的代码如下。
<?php
if(empty($_POST['download_button']) === false && isset($_POST['download_button'])){
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Type: application/octetstream');
header('Content-Disposition: attachment; filename="'.$file_real_name.'"');
header('Content-Transfer-Encoding: binary');
header('Expires: 0');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Pragma: public');
header('Content-Length: ' . (int)(filesize($file_path)));
ob_clean();
flush();
readfile($file_path);
}
?>
<form action="" method="post">
<input type="submit" name="download_button" value="Download"" />
</form>
这是我当前的代码,但我不想要提交按钮。 我想要一个普通按钮或空白链接来开始下载.我已经看到很多网站这样做了。 我认为在JavaScript的帮助下。 有人可以在这里帮忙吗?我不希望用户知道文件服务器上的随机名称或位置。
我的意思是说还有其他方法可以从JavaScript或jQuery向PHP发送请求开始下载,并且无需提交表单即可开始下载。
使用 $_GET 使用超链接而不是提交按钮。
<?php
if(isset($_GET['download']) && $_GET['download']){
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Type: application/octetstream');
header('Content-Disposition: attachment; filename="'.$file_real_name.'"');
header('Content-Transfer-Encoding: binary');
header('Expires: 0');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Pragma: public');
header('Content-Length: ' . (int)(filesize($file_path)));
ob_clean();
flush();
readfile($file_path);
}
?>
<a href="?download=true">Download</a>
$_GET 的替代路线:使用 jquery,你可以有一个调用 javascript 函数的链接,然后,您可以即时访问PHP文件。这也不需要刷新页面
function buttonClicked()
{
$.ajax({
url:'downloadpage.php',
data:{'filename':'name of file'},
type:'post')};
}
<a onclick="buttonClicked()">Download now</a>
相关文章:
- 在提交时打开thankyou.html+下载PDF
- Firefox,如何提交表单触发文件下载,但停留在网页上
- javascript下载一个文件并执行提交操作
- 提交表单时自动“下载”PDF
- 在响应文件下载时重新启用表单提交按钮
- PHP 下载按钮,无需提交回页面
- 在提交中下载
- 只有选中复选框并提交表单时,才能下载文件
- 如何下载对html表单提交的回复
- ASP.当表单提交返回要下载的文件时.NET: JS回调
- 选中复选框,下载文件并提交
- 直接下载pdf提交点击和重定向
- IE10下载问题有两个javascript表单提交
- 禁用Javascript提交页面(在文件下载期间)
- 从XHR下载二进制文件数据,然后重新提交
- 用于文件下载的Java Servlet:当从表单提交启动时工作,而不是从jQuery下载启动时
- 在下载文件出错的情况下,管理表单提交上的JSON服务器响应
- 点击打开弹出窗口,然后提交下载并关闭它!怎样
- 您能否根据 ajax 响应中提交的表单数据提示下载
- 使用javascript多次提交表单以下载多个文件