2012-05-10 5 views
2

어떻게이 코드를 PHP REST CURL POST로 변환 할 수 있습니까?PHP REST CURL POST로 변환

POST https://apis.live.net/v5.0/me/skydrive/files?access_token=ACCESS_TOKEN 

Content-Type: multipart/form-data; boundary=A300x 

--A300x 
Content-Disposition: form-data; name="file"; filename="HelloWorld.txt" 
Content-Type: application/octet-stream 

Hello, World! 
--A300x-- 
+0

CURL에 대한 내용은 http://php.net/curl을 참조하십시오. – shadyyx

답변

3
$url = 'POST https://apis.live.net/v5.0/me/skydrive/files'; 
$ch = curl_init(); 
curl_setopt($ch,CURLOPT_URL, $url); 
curl_setopt($ch,CURLOPT_POSTFIELDS, array('access_token' => TOKEN, 'name' => 'file', 'filename' => "@HelloWorld.txt")); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
$result = curl_exec($ch); 
curl_close($ch); 

편집 : 고정, 게시물을 모두 읽어 보지 않았.

1

나는 것이 도움이 희망이 예에서

<?php 
    $headers = array('token: pacexpressx1x2x3j'); 
    $data = array(
    "STATUS" => "insert" , 
    "NAME" => utf8_encode("Test integration 10"), 
    "COD_AREA" => "4", 
    "DESC_AREA_" => utf8_encode("info/IT"), 
    "JOB" => utf8_encode("TEST job"), 
    "COMPANY" => "4", 
    "DESC_COMPANY" => utf8_encode("XPTO1"), 
    "file" => '@/home/user/test.png'); 

    $url = 'your_link'; 
    $ch = curl_init(); 
    curl_setopt($ch, CURLOPT_URL,$url); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
    curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); 
    curl_setopt($ch, CURLOPT_POST, true); 
    curl_setopt($ch, CURLOPT_POSTFIELDS, $data); 
    curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); 

    $output = curl_exec($ch); 
    echo($output) . PHP_EOL; 
    curl_close($ch); 

내가 헤더를 전송, 사후 필드입니다.

$ headers => 어떻게 값을 보낼 수 있는지 보여주기 위해 토큰 값을 배열에 넣었습니다.

$ data => 일부 상상의 값을 가진 배열을 사용했습니다. 내가 이것을 사용 곱슬 곱슬에

여기 variebles : ( 은 $을 data_string $의 채널, CURLOPT_POSTFIELDS) curl_setopt을; curl_setopt ($ ch, CURLOPT_HTTPHEADER, $ 헤더);

CURLOPT_POSTFIELDS -> HTTP "POST"작업에 게시 할 전체 데이터입니다. 파일을 게시하려면 파일 이름 앞에 @를 붙이고 전체 경로를 사용하십시오. 파일 유형은 '; type = mimetype'형식의 파일 이름을 따라 명시 적으로 지정할 수 있습니다. 이 매개 변수는 'para1 = val1 & para2 = val2 & ...'과 같이 URL 인코딩 된 문자열로 전달되거나 필드 이름이 키이고 값이 필드 데이터 인 배열로 전달할 수 있습니다. value가 배열이면 Content-Type 헤더가 multipart/form-data로 설정됩니다. PHP 5.2.0부터 @ 접두사를 사용하여 파일을이 옵션에 전달하면 값이 배열이어야합니다. http://php.net/manual/pt_BR/function.curl-setopt.php

당신이 보내는 것을 보려면 당신이 보내는 파일을 수신하기 위해, 당신이 울부 짖는이 코드를 사용할 수 있습니다 :

당신이 curl_setopt에 대한 자세한 내용을 보려면 싶은 경우

, 나는 당신에게이 링크 있습니다 sugest
echo 'Here is some more debugging info:'; 
    echo "\n<hr />\n"; 
    print_r($_FILES); 
    echo "\n<hr />\n"; 
    print_r($_POST); 
    print "</pr" . "e>\n"; 
    echo "\n<hr />\n"; 
    // here you will record the file in your server... you can choose a directory if you want 
    file_put_contents($_FILES['file']['name'],file_get_contents($_FILES['file']['tmp_name'])); 
+0

일반적으로 대답은 코드의 의도에 대한 설명과 다른 사람들을 소개하지 않고 문제를 해결하는 이유를 설명하면 훨씬 더 유용합니다. –

+1

이제 괜찮다고 생각합니다 ... –