我有一个链接,它在一个带有简单jquery的新标签页面中启动一个新的html页面,如_target=blank
,没问题。
预期:
当前的意外行为:
很快,我想保持页面打开,同时提示“另存为”对话框。
使用Content-Disposition
附件似乎没有机会保持页面打开。
我也没有做任何exit();
,但除了对话框之外,页面永远不会显示。
由于
答案 0 :(得分:4)
尝试将您的网页初始化为普通网页,然后使用元刷新重定向到相同的网址,并使用参数告诉您的PHP再次作为下载服务该网页。
示例:
<?php
$isDownload = isset( $_GET['download'] );
if( $isDownload ) {
header( 'Content-disposition: attachment' );
}
?>
<html>
<head>
<?php if( !$isDownload ) { ?>
<meta http-equiv="refresh" content="0;<?=$_SERVER['REQUEST_URI']?>?download" />
<?php } ?>
...
答案 1 :(得分:1)
不确定这是否是一个好的答案..但也许..打开显示另存为对话框的页面&amp;尝试一些document.location.href =“abspathtofile”;在js ..虽然我不确定这是否是你正在寻找..
答案 2 :(得分:1)
将元刷新标记插入当前在弹出窗口中提供的页面。此元刷新应指向您要下载的文件:
popup.php:
<head>
...
<meta http-equiv="refresh" content="10;URL='http://www.example.com/downloads/file.ext'" />
...
</head>
这将在新窗口中显示popup.php,10秒后会出现一个保存对话框,提示用户下载文件file.ext
答案 3 :(得分:0)
发送刷新标题
标题(“刷新:5;网址= http://www.example.com?download = 1”);
而不是需要修改模板以添加元标记