【问题标题】:File only downloading when opened in new window/tab文件仅在新窗口/标签打开时下载
【发布时间】:2012-08-09 04:12:14
【问题描述】:

我有一个函数可以根据变量创建不同的文件类型,我让它生成一个 XML,但是当我单击指向页面的链接来执行此操作 (<a href="/asset/1/xml">XML</a>) 时,什么也没有发生。如果我单击以在新选项卡中打开它或在标题栏中手动输入 url,则文件将按我想要的方式下载。

function asset($asset_id, $display = ''){

    $this->load->model('model_asset');

    $asset = $this->model_asset->get_by_id($asset_id, true);

    switch($display) {
    case 'xml':
        $this->load->helper('array_to_xml_helper');

        $asset_arr = get_object_vars($asset);

        $filename = $asset->title .'-'. $asset->subtitle . '.xml';
        $xml = Array2XML::createXML('asset', $asset_arr);
        header ("Content-Type:text/xml");
        header('Content-Disposition: attachment; filename="'. $filename .'"');
        echo $xml->saveXML();
        break;
    }
}

如何使用动态生成的文件进行这项工作(我正在使用我找到的 arraytoxml 实用程序函数here)

【问题讨论】:

  • 你输出的不是标题吗?
  • 哎呀.. 看起来我没有发布我想要的所有代码。是的,我是:p
  • 您可以修改链接,使其在新窗口中打开。 <a target="_blank"> 应该这样做。这只是规避了问题,所以在我看来这并不是真正的解决方案。

标签: php codeigniter http-headers download


【解决方案1】:

您可以尝试在附件中设置文件 将此添加到您的标题中:

  • 内容处置:附件
  • filename=huge_document.pdf

【讨论】:

    猜你喜欢
    • 2013-11-03
    • 2012-09-01
    • 2014-11-05
    • 2017-04-07
    • 1970-01-01
    • 2011-07-05
    • 2017-03-05
    相关资源
    最近更新 更多