2013-08-27 4 views
0

есть ли способ получить файл двоичных данных отправить в качестве ответа на запрос POST?php: получить двоичный файл из запроса POST

I.e. Вы настраиваете свой пакет на какой-либо странице, чем нажмите «Отправить» и HTTP-сервер resposne для этого запроса POST с ZIP-архивом.

Я знаю, что могу отправить запрос POST с помощью cURL, но что делать дальше? Как получить этот файл?

Благодаря

+1

Пытались ли вы 'file_put_contents()' на реакцию завитка запроса? – Maerlyn

+0

not file_get_contents()? – marverix

+1

Если вы хотите сохранить его, это файл_put_contents (помещая вывод в файл). – Maerlyn

ответ

1

Используйте cURL для отправки запроса POST (я не показываю эту часть кода, вы сказали, что знаете, как это сделать). Возвращаемым ответом будет содержимое ZIP-файла. Затем вы можете сохранить его в локальном файле или отправить его клиенту; Я показываю первый вариант ниже.

curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
... 
$result = curl_exec($ch); 
file_put_contents("foo.zip", $result); 

Вы можете также использовать опцию CURLOPT_FILE писать непосредственно в файл вместо того, чтобы использовать переменный первый:

$fh = fopen("foo.zip", "w"); 
curl_setopt($ch, CURLOPT_FILE, $fh); 
close($fh); 
+0

Как вы поймаете это вложение тогда в функции успеха вызова AJAX? – cars10m

+0

@ cars10 Вы бы этого не сделали. Это подразумевается как ответ на нормальное представление формы. Затем браузер отобразит диалог сохранения файлов. – Barmar

+0

Ahh, жизнь может быть настолько легкой, если вы (в этом случае * I *) правильно прочитали вопрос! ;-)) – cars10m

0

Одним из решений может быть, чтобы сервер поставить этот почтовый архив вместе, а затем отправить ссылку на ответ сообщение обратно.

+0

Ну, это предполагало, что 'POST' использовался в запросе AJAX. Итак ... забудьте об этом! ;-) – cars10m

Смежные вопросы