Kesalahan saat mengunggah file ke Box.com

Saya sedang menulis aplikasi PHP yang harus mengunggah file pdf ke akun perusahaan Box.com saya.

Saya menerima kesalahan 400 (Parameter input tidak valid dalam permintaan), tetapi menurut saya semuanya benar.

function upload( $doc ) {

    if ( ! $this->access() )
        $this->getAccess();

    if ( ! is_readable($doc) )
        return false;

    $this->curl->clear();
    // $this->curl->setUpload( true );
    $this->curl->setMethod( 'POST' );
    $this->curl->setHeaders( $this->_header() );
    $this->curl->setValues( array(
        'parent_id' => 0,
        'filename'  => '@'.$doc
    ));
    $this->curl->exec( 'https://upload.box.com/api/2.0/files/content' );

    echo '<pre>'; print_r($this->curl->getHeaders()); echo '</pre>';
    echo '<pre>'; print_r($this->curl->getValues()); echo '</pre>';

    $response = $this->curl->getResult(true);

    echo "<pre>"; print_r($response); echo "</pre>"; exit;

}

Hasil:

POST /api/2.0/files/content HTTP/1.1
User-Agent: User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.8; rv:22.0) Gecko/20100101 Firefox/22.0
Host: upload.box.com
Accept: */*
Authorization: Bearer .....
Content-Length: 89
Content-Type: application/x-www-form-urlencoded

Array
(
    [parent_id] => 0
    [filename] => @/Applications/XAMPP/xamppfiles/htdocs/MyFile.pdf
)

stdClass Object
(
    [type] => error
    [status] => 400
    [code] => invalid_request_parameters
    [help_url] => http://developers.box.com/docs/#errors
    [message] => Invalid input parameters in request
    [request_id] => ......
)

Ketika saya menghapus komentar pada baris untuk membuat file Pengunggahan cURL, metodenya diubah dari POST menjadi PUT dan kemudian saya menerima kesalahan 405 Metode Tidak Diizinkan.

Menurut dokumentasi API di sini http://developers.box.com/docs/#files-upload-a-file Saya mengirimkan semuanya dengan benar.


person Ivan Dokov    schedule 08.08.2013    source sumber
comment
Apakah Anda mengirimkan nama file dengan garis miring pada namanya, atau apakah itu hanya lokasi pencarian sistem file lokal untuk file yang Anda ketik atau unggah? Box tidak menerima / atau \ dalam nama file.   -  person Peter    schedule 10.08.2013
comment
Jalur dan nama file tanpa spasi atau karakter apa pun yang tidak valid. Ketika saya menjalankan perintah cURL dari Terminal saya mengunggah file dengan baik.   -  person Ivan Dokov    schedule 12.08.2013


Jawaban (1)


Menulis PHP SDK untuk v2

Cukup sertakan kelas api dan mulai kelas:

<?php
    include('library/BoxAPI.class.php');

    $client_id = 'CLIENT ID';
    $client_secret = 'CLIENT SECRET';
    $redirect_uri = 'REDIRECT URL';
    $box = new Box_API($client_id, $client_secret, $redirect_uri);

    if(!$box->load_token()){
        if(isset($_GET['code'])){
            $token = $box->get_token($_GET['code'], true);
            if($box->write_token($token, 'file')){
                $box->load_token();
            }
        } else {
            $box->get_code();
        }
    }
    // Upload file
    $box->put_file('RELATIVE FILE URL', '0'));
?>

Lihat di sini Unduh: BoxPHPAPI

person golchha21    schedule 10.09.2013