Re: create archive file in memory with zipArchive class
| From: | Richard Quadling | Date: | Tue, 09 Feb 2010 16:13:08 +0000 |
| Subject: | Re: create archive file in memory with zipArchive class | ||
| References: | 1 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-301909@lists.php.net to get a copy of this message | ||
On 9 February 2010 15:42, Ryan Sun <ryansun81@gmail.com> wrote:
> I want to generate credential zip file for user on the fly with
> zipArchive and render it for download, so I created following code
> ---------------------------------------------------------
> $zip = new ZipArchive();
> $filename = '/tmp/xxx.zip';
> if ($zip->open($filename, ZIPARCHIVE::CREATE)!==TRUE) {
> throw new Exception();
> }
> if($zip)
> {
> $zip->addFromString('xxx.xx', $fileString);
> }
> $zip->close();
> $fileString = file_get_contents($filename);
> unlink($filename);
>
> $this->getResponse()->setHeader('Content-Type', 'application/zip');
>
> $this->getResponse()->setHeader('Content-Disposition','attachment;filename=xxx.zip');
> $this->getResponse()->setBody($fileString);
> -----------------------------------------------------
> it works, but I think creating the file in memory is a better
> approach, so I changed the 2nd lineI(using php 5.2.0) to
> $filename = 'php://temp/xxx.zip';
> then the php just won't archive the file and the file downloaded is
> just a plain text file.
>
> so
> question 1, how to create zip Archive file in memory on the fly and
> download it (I don't have to save it on disk)?
> question 2, if there is no way to create in memory, is it safe to just
> unlink() the file?
>
> thanks in advance.
>
> --
> PHP General Mailing List (http://www.php.net/)
> To unsubscribe, visit: http://www.php.net/unsub.php
>
>
According to http://docs.php.net/manual/en/wrappers.php.php,
it looks
like you should be using ...
$filename = 'php://temp';
That's it.
The actual file name is not your job.
--
-----
Richard Quadling
"Standing on the shoulders of some very clever giants!"
EE : http://www.experts-exchange.com/M_248814.html
EE4Free : http://www.experts-exchange.com/becomeAnExpert.jsp
Zend Certified Engineer : http://zend.com/zce.php?c=ZEND002498&r=213474731
ZOPA : http://uk.zopa.com/member/RQuadling