NYCPHP Meetup

NYPHP.org

[nycphp-talk] Creating file for download on the fly?

Freedman, Tom S. tfreedma at ubspw.com
Fri Jul 26 15:20:29 EDT 2002


Everything's working great.  That's exactly what I was looking for.

I did hit a Microsoft snag, of course, which gave me a good hour and a half
of headaches.  

It turns out that the first two characters of a text file loaded into MS
Excel CANNOT be "ID".  Of course, I was calling my first column "ID".
Excel, upon finding those characters, assumes the file is a SYLK (symbolic
link) file, and tries to read it as such.  This fails, so you get the
cryptic error "SYLK: File format is not valid."  I spent at least an hour
trying to figure out what about my output was invalid (line terminators,
separators, possible bogus characters in the data), until I finally searched
the web in desperation and hit upon a Microsoft KB article acknowledging the
problem.  Just makes you wanna scream, sometimes.

-Tom
 
-----Original Message-----
From: Freedman, Tom S. 
Sent: Friday, July 26, 2002 11:16 AM
To: NYPHP Talk
Subject: RE: [nycphp-talk] Creating file for download on the fly?


Thanks everyone!  I was unaware of the Content-disposition header.  I'll
give this a try as soon as I can!

Thanks again,
Tom

-----Original Message-----
From: Wellington Fan [mailto:beef at interport.net]
Sent: Friday, July 26, 2002 10:57 AM
To: NYPHP Talk
Subject: RE: [nycphp-talk] Creating file for download on the fly?


All,
I would add:

header("Content-length: ".strlen($csvfilecontent));

>-----Original Message-----
>From: Kayra Otaner [mailto:kayraotaner at yahoo.com]
>Sent: Friday, July 26, 2002 10:38 AM
>To: NYPHP Talk
>Subject: Re: [nycphp-talk] Creating file for download on the fly?
>
>
>Hi, I think this self explaining code helps :
>
>header("Content-disposition: filename=$filename.csv");
>header("Content-type: application/octetstream");
>header("Pragma: no-cache");
>header("Expires: 0");
>echo $csvfilecontent;
>
>
>PS : You need to use this code before any other output since header() 
>function requires to be sent
>before anything else.
>
>
>Best
>
>Kayra Otaner
>
>
>--- "Freedman, Tom S." <tfreedma at ubspw.com> wrote:
>> Hi all, I've been a lurker for a couple months as I've been learning PHP,
>> and many of your suggestions have been really helpful.  I was hoping
someone
>> might have an idea on how to tackle an issue I haven't been able to find
any
>> info on.
>> 
>> I'm currently working on a new version of a departmental intranet
website.
>> I have a database, and offer the users a search page that lets them query
it
>> in a variety of ways.  The new results page is not laid out in a grid, as
>> the old one was (we've added a lot of new fields, and the grid would be
too
>> packed).  Some users have requested the ability to download the data for
>> import into Excel (they used to just copy and paste the table in).  I've
>> figured out how to create a .csv file, and I could, theoretically, create
>> one every time someone runs a query, save it in a temp directory, and
>> include a link to it on the webpage.  We'd have to run a cleanup routine
>> every night, though, to delete all these .csv's on the server.  It seems
>> really clumsy to me.  What I'd like to do is put a link on the result
page
>> that, when clicked on, builds the .csv right then and offers it to the
user
>> for download.  Is this feasible, or should I just go with the temp
directory
>> full of reports?
>> 
>> Thanks in advance,
>> Tom
>> 
>
>
>__________________________________________________
>Do You Yahoo!?
>Yahoo! Health - Feel better, live better
>http://health.yahoo.com
>
>



More information about the talk mailing list