Kurtarmak için nasıl, SOAP Dosya?

1 Cevap php

Ben onların webcoder bir gzip alma konusunda bir istemci ile çalışıyorum. Benim şu çağrı ile bir yanıt almak mümkün:

$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;
}

Böyle 'test.gzip' gibi bir dosya, o yazmaya denediğimde bir şey korkunç yanlış yapıyorum çünkü Şimdi, ben büyük olasılıkla ... sonradan açamadı duyuyorum. Herhangi bir fikir mutluluk duyacağız.

EDIT:

Nedense ben bunun yerine '. Gz' of '. Gzip' olarak dosyayı kaydetmeden oldu ... Yani bu işe sahip olmak için var şimdi:

$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");

1 Cevap

(Yorumlarına dayanarak düzenlenmiştir)

Dönüş değeri base64 kodlanmış ise, dosyaya yazmadan önce, size base64-çöz onu gerekir. Alternatif bir dosyaya yazmak hangi sonra another açmaya çalışırken önce dosya, ama bu ilk onu almak zaman sadece onu çözme ile karşılaştırıldığında biraz anlamsız görünüyor base64-çözecektir.