2012-07-16 1 views
1

몇 가지 POST 매개 변수를 전달하면 다운로드 할 파일을 다시 제공한다는 URL이 있습니다. 내 서버에서 해당 파일을 다운로드하는 가장 좋은 방법은 무엇입니까? 다운로드하는 동안 사용자에게 보냅니다.PHP cURL POST 요청을 URL로 보내고 파일을 받고 사용자에게 다운로드하는 방법?

미리 감사드립니다.

+0

파일을 서버에 저장 하시겠습니까? 아니면 단순히 전달합니까? – tamouse

+0

그냥 통과 –

답변

0

그것은 당신이 응답으로 수행 할 작업에 따라 다르지만 가장 쉬운 방법은 설정 응답 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 함수는 두 개의 인수 (컬 핸들, 데이터)을 취하고, (또한, 양 출력 우리의 경우에는) 기록 된 데이터의 양의 리턴 값을 필요로한다.

0

전적으로 cURL을 사용합니다.

지금은 나에게 관련 참조가 없지만 적어도 다중 cURL에서는 데이터 덩어리가 들어올 때 콜백 함수를 사용할 수 있습니다. 데이터를 고객에게 전달하십시오.

관련 문제