Welcome to WebmasterWorld Guest from 54.145.39.186

Forum Moderators: coopster & jatar k

Message Too Old, No Replies

Binary Stream

How to save back to a file.

     

gosman

5:19 pm on Jan 28, 2013 (gmt 0)

10+ Year Member



One of my suppliers provides me with an XML file. This XML file contains a CDATA section with a binary stream of a zipped CSV file.

Once I've parsed the XML file and retrieved the Binary Stream, how do I save it back to a ZIP file?

gosman

11:42 am on Jan 29, 2013 (gmt 0)

10+ Year Member



Any one?

swa66

1:12 pm on Jan 29, 2013 (gmt 0)

WebmasterWorld Senior Member swa66 is a WebmasterWorld Top Contributor of All Time 10+ Year Member



You open a file for writing (binary if you're on wintendo), write to it and close it.

fopen: [php.net...]
fwrite: [php.net...]
fclose: [php.net...]

Try it, if you fail to get the result, show relevant code.

gosman

6:53 pm on Jan 30, 2013 (gmt 0)

10+ Year Member



Hi Swa66

I tried that and it doesn't work. Here is what is says in the manual

"The response object of this method will return you a binary stream which you
will need to create a zip file out of"

And here is the XML response

<stream>UEsDBBQAAAAIANaTPkKNE32Qcx4AAKHcAAAQACQAUHJvZEZlZWRGaWxlLnhtbAoAIAAAAAAAAQAYAJ7BnOoX/80BnsGc6hf/zQGewZzqF.......</stream>

I parse the XML storing the stream in $response

$file=fopen("/filepath/test.zip","wb");
fwrite($file,$response);
fclose($file);


The zip file gets created as expected, however when I try opening it, it gives an error. "Not a valid ZIP file"

swa66

8:39 pm on Jan 30, 2013 (gmt 0)

WebmasterWorld Senior Member swa66 is a WebmasterWorld Top Contributor of All Time 10+ Year Member



Your stream looks not to be binary. I'd guess it to be base64 encoded.

php has what you need to decode base64 (assuming it is base64) [php.net...]

gosman

9:57 am on Jan 31, 2013 (gmt 0)

10+ Year Member



Thank you swa66

base64_decode($response);

Was the solution.
 

Featured Threads

Hot Threads This Week

Hot Threads This Month