我有一个根据变量创建不同文件类型的函数,我让它生成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 实用程序函数)
您可以尝试在附件中设置文件将其添加到您的标题中:
- 内容处置:附件
- 文件名=huge_document.pdf