Re: Generating "download" pages [message #186418 is a reply to message #186404] |
Sat, 19 July 2014 20:55 |
Jerry Stuckle
Messages: 2598 Registered: September 2010
Karma:
|
Senior Member |
|
|
On 7/19/2014 12:17 PM, Arno Welzel wrote:
> Lew Pitcher, 2014-07-18 15:55:
>
>> I'm not certain that what I want can be done, let alone done with PHP, but
>> please let me describe the function I'm looking for:
>>
>>
>> On response to a trigger on one web page, I want to be able to generate and
>> display a new web page, /and/ at the same time, send an associated file as
>> a download.
>>
>> The user selects (in this case) "Export recipes" (I'm developing a PHP/MySQL
>> recipe management application), which causes
>> 1) the page to change to a "Download in progress" page, and
>> 2) a file (in this case, an XML file containing the recipes) to be sent to
>> the client.
>>
>> Is this doable? How do I do this with PHP?
>
> I would solve it this way:
>
> A PHP script displays the page *and* also generates a
> META-Refresh-Header to redirect the browser to another script (or the
> same whith an additional parameter) which will then generate the content
> to be downloaded.
>
> As a rough example (untested and not complete - just to get the idea):
>
> <?php
> //
> // getfile.php
> //
>
> if(!isset($_GET['download'))
> {
> ?>
> <!DOCTYPE html>
> <html>
> <head>
> <meta
> http-equiv="refresh"
> content="5; url=http://example.com/getfile.php?download=1" />
> <title>Download</title>
> </head>
> <body>
> <p>If your download does not start automatically,
> <a href="http://example.com/getfile.php?download=1">click here</a>.</p>
> </body>
> </html>
> <?
> }
> else
> {
> header("Content-Disposition: attachment; filename=download.xml");
>
> // Add XML output to be downloaded here...
> }
> ?>
>
>
Arno,
An interesting idea. I admit I hadn't thought of using a meta refresh
that way; it's worth a look. The couple of times I've needed to do
something like this I've used javascript.
--
==================
Remove the "x" from my email address
Jerry Stuckle
jstucklex(at)attglobal(dot)net
==================
|
|
|