2017-03-01 4 views
1

에 파일 업로드 내 데스크톱 폴더의 파일을 보관 용 계정의 폴더에 업로드하려고 시도했습니다.보관 용 계정 폴더

하지만이 코드를 통해 빈 파일을 업로드 할 때마다.

어떻게 가능합니까?

아래는 내 코드 S : 당신은 어디서든 업로드 호출에 파일 내용을 추가하는 것 같지 않는

 $ch = curl_init(); 
    $TOKEN = "asasasa";//token here 
    $url = 'https://content.dropboxapi.com/2/files/upload'; 
    curl_setopt($ch,CURLOPT_URL,$url); 
    curl_setopt($ch,CURLOPT_POST, 1);    
    curl_setopt($ch,CURLOPT_RETURNTRANSFER, true); 
    $headers = array(); 
    $headers[] = 'Accept: application/json'; 
    $headers[] = 'Content-Type: multipart/form-data'; 
    $headers[] = 'Dropbox-API-Arg:{"path":"/home/new/ofd","mode":{".tag":"add"},"autorename":false,"mute":false}'; 
    $headers[] = "Authorization: Bearer ".$TOKEN; 
    curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);  
    $response = curl_exec($ch); 
    $droplist = json_decode($response,true); 

답변

1

, 그래서 빈 파일은 사용자 코드에서 예상된다.

curl과 함께/2/files/upload를 사용하는 예는 아래 PHP에서 찾을 수 있습니다. 그 파일 내용을 추가하려면 CURLOPT_INFILE을 사용합니다.


<?php 

$path = 'test_php_upload.txt'; 
$fp = fopen($path, 'rb'); 
$size = filesize($path); 

$cheaders = array('Authorization: Bearer <ACCESS_TOKEN>', 
        'Content-Type: application/octet-stream', 
        'Dropbox-API-Arg: {"path":"/test/'.$path.'", "mode":"add"}'); 

$ch = curl_init('https://content.dropboxapi.com/2/files/upload'); 
curl_setopt($ch, CURLOPT_HTTPHEADER, $cheaders); 
curl_setopt($ch, CURLOPT_PUT, true); 
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST'); 
curl_setopt($ch, CURLOPT_INFILE, $fp); 
curl_setopt($ch, CURLOPT_INFILESIZE, $size); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
$response = curl_exec($ch); 

echo $response; 
curl_close($ch); 
fclose($fp); 

?> 

<ACCESS_TOKEN>


는 2의 OAuth 액세스 토큰으로 대체한다.

0

보관 폴더 보관 용 API를 V2로 파일을 업로드 $dropbox_api_url = ' https://content.dropboxapi.com/2/files/upload '; //dropbox api url $token = 'Access token value put here'; // should be replaced with the OAuth 2 access token $headers = array('Authorization: Bearer '. $token, 'Content-Type: application/octet-stream', 'Dropbox-API-Arg: '. json_encode( array( "path"=> '/'. basename($filename), "mode" => "add", "autorename" => true, "mute" => false ) ) ); $ch = curl_init($dropbox_api_url); curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); curl_setopt($ch, CURLOPT_POST, true); $path = $filename; $fp = fopen($path, 'rb'); $filesize = filesize($path); curl_setopt($ch, CURLOPT_POSTFIELDS, fread($fp, $filesize)); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $response = curl_exec($ch); $http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE); //For display value as array object starts here echo ""; print_r(json_decode($response)); //For display value as array object ends here echo($response.'
'); echo($http_code.'
'); curl_close($ch);