如何在提示下载对话框的同时将页面作为html提供

时间:2012-02-28 15:58:01

标签: php jquery

我有一个链接,它在一个带有简单jquery的新标签页面中启动一个新的html页面,如_target=blank,没问题。

预期:

  • 页面在新标签页中打开,应保持打开状态,并提示“另存为”对话框

当前的意外行为:

  • 页面在新选项卡中打开,然后通过提示保存对话框关闭

很快,我想保持页面打开,同时提示“另存为”对话框。

使用Content-Disposition附件似乎没有机会保持页面打开。 我也没有做任何exit();,但除了对话框之外,页面永远不会显示。

由于

4 个答案:

答案 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”);

而不是需要修改模板以添加元标记