2012-08-28 5 views
0

곱슬 곱슬을 사용하여 Google picasa에 그림을 업로드하고 싶습니다.이 곱슬은 curl을 사용하여 Google Picasa에 그림을 업로드하는 것으로 나타났습니다. 그러나이를 PHP로 변환하는 방법을 모르겠습니다. 그것을 사용할 수있을 컬.PHP 곱슬 곱슬 곱슬하게 작성하는 법

curl --silent --request POST --data-binary "@sweeping_the_rock.png" --header "Slug: Sweeping the rock" --header "Content-Type: image/png" --header "Authorization: GoogleLogin auth=ABCDEFG" "http://picasaweb.google.com/data/feed/api/user/brad.gushue/albumid/5113621341847124417" | tidy -xml -indent -quiet 

$file = "C:/Users/Michael/Desktop/182178_271150652992340_118089494_n.jpg"; 
$postimg = "https://picasaweb.google.com/data/feed/api/user/userId/albumid/albumId"; 
$header = array("Content-Type: image/jpeg", 
     "Content-Length: ".filesize($file), 
     "Authorization: GoogleLogin auth=$token", 
     "Slug: 182178_271150652992340_118089494_n.jpg" 
); 
$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, $postimg); 
curl_setopt($ch, CURLOPT_POST, 1); 
curl_setopt($ch, CURLOPT_HTTPHEADER, $header); 
curl_setopt($ch, CURLOPT_POSTFIELDS, file_get_contents($file)); 
$hasil = curl_exec($ch); 
curl_close($ch); 

출처 : https://developers.google.com/gdata/articles/using_cURL#media-support

+2

안녕하세요. 오신 것을 환영합니다. StackOverflow. 프로그램에 문제가있는 동안 커뮤니티에 도움을 요청하기 전에 최선을 다할 것을 강력히 권장합니다. 시도한 코드로 문제가 발생하는 것이 확실한 경우 도움을 드리겠습니다. 자신의 솔루션을 설계하는 데 아무런 노력을 기울이지 않으면 질문의 우선 순위를 낮추고이를 닫습니다. 적어도 먼저 솔루션을 시도해야합니다. 정직한 노력 대신 코드 작성을 다른 사람에게 요구하지 마십시오. 즉, [무엇을 시도 했습니까?] (http://www.whathaveyoutried.com)? – Matt

+0

[PHP Curl docs] (http://www.php.net/manual/en/ref.curl.php)가 유용 할 것입니다. –

+0

그래서 어디서 문제가 있습니까? 말리는 오류가 있습니까? API에서 기대하는 응답을 얻지 못하고 있습니까? –

답변

0

은 어쩌면 당신은 파일을 제대로 전송되지 않습니다. 당신은 (단순 포스트 데이터를 전송 완전히 다른 형태로 인코딩 후 파일 업로드입니다 게시) MIME 인코딩이고 올바르게 전달되도록 파일 CURLOPT_INFILE 파일 업로드

http://php.net/manual/en/function.curl-setopt.php

을 CURL_OPTs을 추가 할 필요가 업로드시 전송을 읽어야합니다.

CURLOPT_INFILESIZE 파일을 원격 사이트에 업로드 할 때 파일의 예상 크기 (바이트)입니다. 이 옵션을 사용한다고해서 libcurl이 더 많은 데이터를 보내는 것을 막을 수는 없다. 정확히 무엇이 보내질지는 CURLOPT_READFUNCTION에 달려있다.

관련 문제