Luke CheerfulPlum Pace
Luke CheerfulPlum Pace

Reputation: 293

PHP File creation and download on the fly

Hey guys I was wondering how I could download a file that is generated on the fly by PHP. The file I want to download would be an XML file. At the moment all my code does is create a long string with all of the data that is to put in the file, it then simply writes the string to a file and saves it with a .XML extension. This is currently working in my local machine using a copy of the website, it won't work on the web server though due to read/write permissions.

So is there a way to generate a file in the fly to be immediately downloaded without storing it on the web server?

Upvotes: 1

Views: 3313

Answers (2)

Praveen Kumar Purushothaman
Praveen Kumar Purushothaman

Reputation: 167162

Just give these two things on the top of the document:

<?php
    header('Content-type: text/xml');
    header('Content-Disposition: attachment; filename="myxml.xml"');
?>

Upvotes: 3

James
James

Reputation: 5169

If the same script is generating the file, you could echo or print the contents on to the page and use header to force download.

<?php
    header('Content-type: text/xml');
    header('Content-Disposition: attachment; filename="file.xml"');

    echo $XMLString;
?>

And if you have a different file for downloading the file, just use file_get_contents and output the file data!

That should do you :)

Upvotes: 7

Related Questions