2010-02-22 2 views
1

POST 요청에 대한 응답으로 파일을 저장하는 데 문제가 있습니다.PHP : POST 응답을 파일에 저장 중

Google Charts API를 사용하여 POST 요청을 사용하여 차트를 만듭니다. 그 결과를 이미지로 저장하려고합니다.

$file = fopen($url, 'r', false, $context); 
$file2 = fopen("test.png", 'w'); 

while (!feof($file)) { 
    $buffer = fgets($file, 8192); 
    fwrite($file2, $buffer); 
} 
fclose($file); 

그것은 이미지의 하단 부분을 떠나, 20K 정도까지 부분적으로 이미지를 저장 : 여기

http://code.google.com/apis/chart/docs/post_requests.html 내 코드입니다 : 여기에 설명 된대로

나는 API 문서를 다음입니다 저장하지 않았다.

(편집) 여기서 작업 코드는 사용하여 컬 :

$handle = curl_init($url); 
curl_setopt($handle, CURLOPT_POST, true); 
curl_setopt($handle, CURLOPT_FILE, $file); 
curl_setopt($handle,CURLOPT_POST,count($request)); 
curl_setopt($handle, CURLOPT_POSTFIELDS, $request_string); 
$data = curl_exec($handle); 

답변

1

가 도움이됩니다 있는지,하지만 당신은 무엇을 fgets 대신, fread를 사용하려고하면 - 첫 번째는 "바이너리 안전"인 두 번째 줄은 줄 끝에서 멈추는 반면 ... 텍스트 파일이 아닌 이진 스트림에서 읽으 려한다면 어쩌면 뭔가 바뀔 수 있습니까?

변경되지 않으면 어떤 종류의 루프를 수행하는 대신 파일 전체를 다운로드하려면 을 사용하는 것이 좋습니다.

여전히 작동하지 않는다면 curl은 무엇인가요?

+0

fgets 대신 fread를 사용하면 동일한 결과를 얻을 수 있습니다. 파일의 절반 만 저장됩니다. – Goro

+0

잘 돌아갔습니다 :) – Goro

+0

이상한,'fread' /'fgets'; 하지만 그 곱슬 곱슬하게 작동했습니다 :-) –

관련 문제