首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从php://读取zip压缩文件

从php://读取zip压缩文件
EN

Stack Overflow用户
提问于 2015-11-19 16:05:53
回答 1查看 633关注 0票数 2

我从webservice (WSDL)接收大对象。它们的位置之一是以base64字符串形式存储的zip的fileContent。我需要从这个压缩中读取文件名和内容。

我写了以下内容:

代码语言:javascript
复制
$ePackageFile = $ePackage->ePackageFile;
$attachment = $this->mapper->mapEPackageFileData((array)$ePackageFile, false);

$limitMBs = 20 * 1024 * 1024;//20MB LIMIT !
$fp = fopen("php://temp/maxmemory:$limitMBs", 'r+');

fwrite($fp, base64_decode($attachment['attachment_fileContent']));

$zip = new ZipArchive;
$handler = $zip->open("php://temp");
if($handler === FALSE)
    return array('status'=>false, 'result'=>'failed to get stream');

$i=0;
$out = array();
while (($file = $zip->getNameIndex($i)) && $file !== false) {
    $out[] = array('filename' => $zip->getNameIndex($i), 'content' => $zip->getFromIndex($i));
    $i++;
}
$zip->close();

但是我仍然有"Warning: ZipArchive::getNameIndex():Invalid or unitialized object ...“

我还使用以下命令检查了文件:

代码语言:javascript
复制
$fp = fopen('test.zip','a+');
fwrite($fp, base64_decode($attachment['attachment_fileContent']));
fclose($fp);

然后使用KEKA提取它(成功)。

你能帮我用wrapper阅读内容吗?

编辑:我收到错误代码11 (无法打开文件)。

EN

回答 1

Stack Overflow用户

发布于 2015-11-19 16:56:09

我发现了这个:Extract a file from a ZIP string

我不得不承认,从php://中读取可能是不可能的

我解决了创建临时文件的问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33798275

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档