Javascript 浏览器弹出窗口阻止程序正在阻止文件下载
我在php中有一个文件下载函数,它调用下载文件,但是浏览器弹出窗口阻止程序阻止它打开 目标是有一个html表单提交按钮,它提交表单,根据表单输入在服务器上编辑rtf文件,然后将新文件下载给用户 因为我需要php在用户点击下载后运行一些代码,而在文件下载之前,我无法让它以任何其他方式工作。我必须让php回显一个链接,然后是一些点击该链接的js代码 下载功能:Javascript 浏览器弹出窗口阻止程序正在阻止文件下载,javascript,php,html,download,popup-blocker,Javascript,Php,Html,Download,Popup Blocker,我在php中有一个文件下载函数,它调用下载文件,但是浏览器弹出窗口阻止程序阻止它打开 目标是有一个html表单提交按钮,它提交表单,根据表单输入在服务器上编辑rtf文件,然后将新文件下载给用户 因为我需要php在用户点击下载后运行一些代码,而在文件下载之前,我无法让它以任何其他方式工作。我必须让php回显一个链接,然后是一些点击该链接的js代码 下载功能: function download($path, $name){ if(!file_exists($path)){ echo $pa
function download($path, $name){
if(!file_exists($path)){
echo $path." does not exist.";
}
else{
echo "
<a href='download.php?path={$path}&name={$name}' id='download'
target='download_frame' style='display:none;'>Download File</a>
<script>document.getElementById('download').click();</script>
";
}
}
函数下载($path,$name){
如果(!file_存在($path)){
echo$path。“不存在。”;
}
否则{
回声“
document.getElementById('download')。单击();
";
}
}
下载.php:
<?php
header("Content-type: application/doc");
basename($_GET["path"]));
$name = $_GET["name"];
header("Content-Disposition: attachment; filename='".$name.".doc");
header("Content-Transfer-Encoding: quoted_printable");
header('Pragma: no-cache');
header('Expires: 0');
header("Cache-Control: public");
header("Content-Description: File Transfer");
header('Content-Transfer-Encoding: binary');
header("Content-type: application/force-download");
header('Content-Type: application/octet-stream');
readfile($_GET["path"]);
您可以使用一个标题代替echo,并使用JavaScript:
header ('location: download.php?path='. $path .'&name='. $name);
这将重定向到同一页面中的download.php,并建议下载该文件