Re: [PHP] storing files in database and retriving them

[email protected] (Pete Ford)
Newsgroups php.general
Message-ID <[email protected]>
On 27/07/10 14:16, Peter Lind wrote:
> 2010/7/27 Nilesh Govindarajan<[email protected]>:
>> 2010/7/27 Dušan Novaković<[email protected]>:
>>> Hello,
>>>
>>> so when I'm sending the array to model it's like this:
>>>
>>> $fp = fopen(INVOICE_PATH.date('Y-m-d').DS.$pdfName, "r");
>>> $pdfContent             = array(
>>>                                         'file'  =>        base64_encode(fread($fp,
>>> filesize(INVOICE_PATH.date('Y-m-d').DS.$pdfName))),
>>>                                         'name'  =>        $pdfName,
>>>                                         'size'  =>        filesize(INVOICE_PATH.date('Y-m-d').DS.$pdfName),
>>>                                         'type'  =>        mime_content_type(INVOICE_PATH.date('Y-m-d').DS.$pdfName)
>>>                                         );
>>> fclose($fp);
>>>
>>> so the data in db are ok, and this type is application/pdf.
>>>
>>> And when I'm getting data, I get the array like this:
>>>
>>> $file = Array
>>> (
>>>     [id] =>  2
>>>     [file] =>VBERi0xLjM...<= here file is base64_encode()
>>>     [file_size] =>  2204
>>>     [file_type] =>  application/pdf
>>>     [file_name] =>  2_file.pdf
>>> )
>>>
>>> Headers:
>>>
>>> header("Content-length: ".$file['file_size']);
>>> header("Content-type: ".$file['file_type']);
>>> header("Content-Disposition: attachment; filename= ".$file['file_name']);
>>> echo base64_decode($file['file']);
>>>
>>>
>>> So, mime looks ok, but still... not working :-(
>>>
>>>
>>>
>>>
>>> --
>>> mob: + 46 70 044 9432
>>> web: http://novakovicdusan.com
>>>
>>> Please consider the environment before printing this email.
>>>
>>
>> Are you sure that you need Content-Disposition? Try removing that. I
>> think that's used only in emails (Correct me if I'm wrong).
>
> You're wrong. Content-Disposition tells the browser how to handle the
> content - in this case, the browser will download the file instead of
> displaying it.
>
> Regards
> Peter
>

I think you need to be careful about quoting the file name in the 
Content-Disposition header: something like

header('Content-Disposition: attachment; filename="'.$filename.'.xml"');

seems to be the right quoting - the filename needs to be in double-quotes

-- 
Peter Ford, Developer                 phone: 01580 893333 fax: 01580 893399
Justcroft International Ltd.                              www.justcroft.com
Justcroft House, High Street, Staplehurst, Kent   TN12 0AH   United Kingdom
Registered in England and Wales: 2297906
Registered office: Stag Gates House, 63/64 The Avenue, Southampton SO17 1XS
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.