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