Reputation: 12927
I'm using domdocument to create an xml file:
$dom = new DOMDocument('1.0', 'iso-8859-1');
echo $dom->saveXML();
When I click the link to this file, it simply displays it as an xml file. How do I prompt to download instead? Furthermore, how can I prompt to download it as 'backup_11_7_09.xml' (insert todays date and put it as xml) instead of the php file's real name which is 'backup.php'
Upvotes: 0
Views: 15792
Reputation: 27553
Set the Content-Disposition
header as an attachment prior to your echo:
<? header('Content-Disposition: attachment;filename=myfile.xml'); ?>
Of course, you can format myfile.xml
using strftime()
to get a formatted date in the file name:
<?
$name = strftime('backup_%m_%d_%Y.xml');
header('Content-Disposition: attachment;filename=' . $name);
header('Content-Type: text/xml');
echo $dom->saveXML();
?>
Upvotes: 12
Reputation: 6210
This should work:
header('Content-Disposition: attachment; filename=dom.xml');
header("Content-Type: application/force-download");
header('Pragma: private');
header('Cache-control: private, must-revalidate');
$dom = new DOMDocument('1.0', 'iso-8859-1');
echo $dom->saveXML();
If your using a session, use the following settings to prevent problems with IE6:
session_cache_limiter("must-revalidate");
session_start();
Upvotes: 3
Reputation: 9915
<?php
// We'll be outputting a PDF
header('Content-type: text/xml');
// It will be called downloaded.pdf
header('Content-Disposition: attachment; filename="my xml file.xml"');
// The PDF source is in original.pdf
readfile('saved.xml'); // or otherwise print your xml to the response stream
?>
Use the content-disposition header.
Upvotes: 2