在新窗口/选项卡中打开时仅文件下载

时间:2012-08-12 20:38:00

标签: php codeigniter http-headers download

我有一个根据变量创建不同文件类型的函数,我让它生成一个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

1 个答案:

答案 0 :(得分:0)

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

  • 内容处理:附件
  • 文件名= huge_document.pdf