몇 가지 POST 매개 변수를 전달하면 다운로드 할 파일을 다시 제공한다는 URL이 있습니다. 내 서버에서 해당 파일을 다운로드하는 가장 좋은 방법은 무엇입니까? 다운로드하는 동안 사용자에게 보냅니다.PHP cURL POST 요청을 URL로 보내고 파일을 받고 사용자에게 다운로드하는 방법?
미리 감사드립니다.
몇 가지 POST 매개 변수를 전달하면 다운로드 할 파일을 다시 제공한다는 URL이 있습니다. 내 서버에서 해당 파일을 다운로드하는 가장 좋은 방법은 무엇입니까? 다운로드하는 동안 사용자에게 보냅니다.PHP cURL POST 요청을 URL로 보내고 파일을 받고 사용자에게 다운로드하는 방법?
미리 감사드립니다.
그것은 당신이 응답으로 수행 할 작업에 따라 다르지만 가장 쉬운 방법은 설정 응답 CURLOPT_RETURNTRANSFER 및 출력 : 당신, 그래서
$ch = curl_init("http://stackoverflow.com/");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$resp = curl_exec($ch);
curl_close($ch);
echo $resp;
실패에 그 curl_exec
반환 FALSE 잊지 마세요 아마도 확인해야합니다 :
if ($resp === false) die('Unable to contact server');
당신이 (대신 기본적으로 바보 프록시 위의 방법으로)뿐만 아니라 서버의 응답을 저장하려면, 대신 CURLOPT_WRITEFUNCTION의 사용을 만들 수 있습니다.
는$fp = fopen('my_file', 'w');
$ch = curl_init("http://stackoverflow.com/");
curl_setopt($ch, CURLOPT_WRITEFUNCTION, 'writefunc');
curl_exec($ch);
curl_close($ch);
fclose($fp);
function writefunc($ch, $data) {
global $fp;
echo $data;
return fwrite($fp, $data);
}
write 함수는 두 개의 인수 (컬 핸들, 데이터)을 취하고, (또한, 양 출력 우리의 경우에는) 기록 된 데이터의 양의 리턴 값을 필요로한다.
전적으로 cURL을 사용합니다.
지금은 나에게 관련 참조가 없지만 적어도 다중 cURL에서는 데이터 덩어리가 들어올 때 콜백 함수를 사용할 수 있습니다. 데이터를 고객에게 전달하십시오.
파일을 서버에 저장 하시겠습니까? 아니면 단순히 전달합니까? – tamouse
그냥 통과 –