2015-08-14 6 views
2

Хорошо ... новичок вопрос, что я не могу понять. Вот что говорит Box.com documentation для загрузки файла:cURL to PHP Вопросы перевода

curl https://upload.box.com/api/2.0/files/content \ 
    -H "Authorization: Bearer ACCESS_TOKEN" -X POST \ 
    -F attributes='{"name":"tigers.jpeg", "parent":{"id":"11446498"}}' \ 
    -F [email protected] 

Я пытаюсь это в PHP:

$attributes='{"name":"tigers.jpeg", "parent":{"id":"4224475591"}}'; 
$headr = array(); 
$headr[] = 'Authorization: Bearer xxxxxxxxxxxxxxxxxxxxxxxxxxx'; 

$prep_data = array('file'=>'data08.13.15.csv','attributes' => $attributes); 
$post_data= http_build_query($prep_data) . "\n"; 
$url = 'https://upload.box.com/api/2.0/files/content'; 
$ch = curl_init(); 
curl_setopt($ch, CURLOPT_HTTPHEADER,$headr); 
curl_setopt($ch, CURLOPT_URL, $url); 
curl_setopt($ch, CURLOPT_POST, 1); 
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data); 
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); 
curl_setopt($ch, CURLOPT_HEADER, 0); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 

$response = curl_exec($ch); 
var_dump($response); 

я получаю string(0) "" назад для моего var_dump($response);

Что я делаю неправильно Вот?

ответ

0

Вы не указываете, что это данные с несколькими частями. Не уверен, есть ли у вас другие проблемы. Но вот некоторые рабочий код, который вы можете изменить, чтобы удовлетворить ваши потребности:

<?php 
    // ENTER YOUR DEVELOPER TOKEN 
    $token = "ekdfokeEdfdfkosdkoqwekof93kofsdfkosodSqd"; 

    $url = "https://upload.box.com/api/2.0/files/content"; 
    if (isset($_POST['btnUpload'])) { 
     $file_upload = $_FILES['file']['tmp_name']; 
     $json = json_encode(array(
           'name' => $_FILES['file']['name'], 
           'parent' => array('id' => 0) 
          )); 
     $fields = array(
         'attributes' => $json, 
         'file'=>new CurlFile($_FILES['file']['tmp_name'],$_FILES['file']['type'],$_FILES['file']['name']) 
       ); 

     try { 
      $ch = curl_init(); 
      curl_setopt($ch,CURLOPT_URL, $url); 
      curl_setopt($ch, CURLOPT_HTTPHEADER, array(
       'Authorization: Bearer '.$token, 
       'Content-Type:multipart/form-data' 
      )); 
      curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
      curl_setopt($ch, CURLOPT_POSTFIELDS, $fields); 
      $response = curl_exec($ch); 
      curl_close($ch); 
     } catch (Exception $e) { 
      $response = $e->getMessage(); 
     } 

     print_r($response); 
    } 

?> 

<form method="post" name="frmUpload" enctype="multipart/form-data"> 
    <label>Upload file to Box 
     <input name="file" type="file" id="file"/> 
    </label> 
    <input name="btnUpload" type="submit" value="Upload" /> 
</form> 

http://liljosh.com/uploading-files-to-box-content-api-v2/