繁体   English   中英

来自SOAP的文件,如何保存?

[英]File from SOAP, how to save?

我正在与客户一起从其Web服务获取gzip。 我可以通过以下电话获得回复:

$response = $client->call('branchzipdata', $param);
$filename = "test.gzip";
if (!$handle = fopen($filename, 'a')) {
     echo "Cannot open file ($filename)";
     exit;
}

if (fwrite($handle, $response) === FALSE) {
    echo "Cannot write to file ($filename)";
    exit;
}

现在,当我尝试写入该文件(例如“ test.gzip”)时,我之后将无法打开它……很可能是因为我在做一些可怕的错误。 任何见识将不胜感激。

编辑:

由于某种原因,我将文件另存为“ .gzip”而不是“ .gz” ...因此,为了使其正常工作,我现在有:

$response = $client->call('call', $param);
$content = base64_decode($response);
$filename = "output_zip.gz";
if (!$handle = fopen($filename, 'w')) {
    echo "Cannot open file ($filename)";
    exit;
}

if (fwrite($handle, $content) === FALSE) {
  echo "Cannot write to file ($filename)";
  exit;
}
fclose($handle);
echo system("gzip -d $filename");

(根据评论编辑)

如果返回值是base64编码的,则需要先对其进行base64解码,然后再将其写入文件。 或者,您可以将其写到一个文件中,然后在尝试打开该文件之前,将其base64解码为另一个文件,但是与初次获取时将其解码相比,这似乎没有意义。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM