Я работаю с клиентом по получению gzip из своего веб-сервиса. Я могу получить ответ с моим следующим вызовом:Файл из SOAP, как сэкономить?
$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», я не могу открыть его потом ... скорее всего потому, что Я делаю что-то ужасное. Любое понимание было бы оценено.
EDIT:
По какой-то причине я спасительной файл как «.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");
Извините, забыли включить этот фрагмент кода, но я фактически закрываю ручку. Из того, что я читал, я думаю, что просто приближаюсь к этому неправильно. Мне еще нужно иметь дело с мылом. – Thomas
Что происходит, когда вы пытаетесь прочитать файл? Можете ли вы открыть его, но это не файл gzip? Является ли это base64-кодированным каким-либо образом? –
Я больше не работаю, но да, это base64-encoded. Часть, которая меня смутила, я должен ее декодировать, прежде чем писать содержимое в test.gzip или впоследствии декодировать содержимое? Я думаю, что я просто смущен, когда дело доходит до обработки ответа, который я получаю от запроса на мыло. Спасибо за вашу помощь! – Thomas