Sample code for 30+ languages & platforms
Java

Dropbox File Streaming Upload

See more Dropbox Examples

Upload a file to Drobox using a file stream. This example can upload files up to 150MB. Larger files must be uploaded with an upload session (upload_session/start).

Chilkat Java Downloads

Java
import com.chilkatsoft.*;

public class ChilkatExample {

  static {
    try {
        System.loadLibrary("chilkat");
    } catch (UnsatisfiedLinkError e) {
      System.err.println("Native code library failed to load.\n" + e);
      System.exit(1);
    }
  }

  public static void main(String argv[])
  {
    boolean success = false;

    //  This example requires the Chilkat API to have been previously unlocked.
    //  See Global Unlock Sample for sample code.

    //  A Dropbox access token should have been previously obtained.
    //  Dropbox access tokens do not expire.
    //  See Dropbox Access Token.

    CkRest rest = new CkRest();

    //  Connect to Dropbox
    success = rest.Connect("content.dropboxapi.com",443,true,true);
    if (success == false) {
        System.out.println(rest.lastErrorText());
        return;
        }

    //  Add request headers.
    rest.AddHeader("Content-Type","application/octet-stream");
    rest.AddHeader("Authorization","Bearer DROPBOX_ACCESS_TOKEN");

    //  The upload "parameters" contained in JSON passed in an HTTP request header.
    //  This is the JSON to be added in this example:
    //  { 
    //     "path": "/Homework/lit/hamlet.xml",
    //     "mode": "add",
    //     "autorename": true,
    //     "mute": false
    //  }

    CkJsonObject json = new CkJsonObject();
    json.AppendString("path","/Homework/lit/hamlet.xml");
    json.AppendString("mode","add");
    json.AppendBool("autorename",true);
    json.AppendBool("mute",false);
    rest.AddHeader("Dropbox-API-Arg",json.emit());

    //  Almost ready to go...
    //  Let's setup a file stream to point to a file.
    CkStream fileStream = new CkStream();
    fileStream.put_SourceFile("qa_data/xml/hamlet.xml");

    //  Do the upload.  The URL is https://content.dropboxapi.com/2/files/upload.
    //  We already connected to content.dropboxapi.com using TLS (i.e. HTTPS),
    //  so now we only need to specify the path "/2/files/upload".

    //  Note: The file is streamed directly from disk.  (The entire
    //  file will not be loaded into memory.)
    String responseStr = rest.fullRequestStream("POST","/2/files/upload",fileStream);
    if (rest.get_LastMethodSuccess() == false) {
        System.out.println(rest.lastErrorText());
        return;
        }

    //  When successful, Dropbox responds with a 200 response code.
    if (rest.get_ResponseStatusCode() != 200) {
        //  Examine the request/response to see what happened.
        System.out.println("response status code = " + rest.get_ResponseStatusCode());
        System.out.println("response status text = " + rest.responseStatusText());
        System.out.println("response header: " + rest.responseHeader());
        System.out.println("response body (if any): " + responseStr);
        System.out.println("---");
        System.out.println("LastRequestStartLine: " + rest.lastRequestStartLine());
        System.out.println("LastRequestHeader: " + rest.lastRequestHeader());
        return;
        }

    //  The response is JSON.
    CkJsonObject jsonResp = new CkJsonObject();
    jsonResp.put_EmitCompact(false);
    jsonResp.Load(responseStr);

    //  Show the JSON response.
    System.out.println(jsonResp.emit());

    //  Returns JSON that looks like this:
    //  { 
    //    "name": "hamlet.xml",
    //    "path_lower": "/homework/lit/hamlet.xml",
    //    "path_display": "/Homework/lit/hamlet.xml",
    //    "id": "id:74FkdeNuyKAAAAAAAAAAAQ",
    //    "client_modified": "2016-06-02T23:19:00Z",
    //    "server_modified": "2016-06-02T23:19:00Z",
    //    "rev": "9482db15f",
    //    "size": 279658
    //  }

    //  Sample code to get data from the JSON response:
    int size = jsonResp.IntOf("size");
    System.out.println("size = " + size);

    String rev = jsonResp.stringOf("rev");
    System.out.println("rev = " + rev);

    String clientModified = jsonResp.stringOf("client_modified");
    CkDateTime ckdt = new CkDateTime();
    ckdt.SetFromTimestamp(clientModified);
    boolean bLocalTime = true;
    CkDtObj dt = new CkDtObj();
    ckdt.ToDtObj(bLocalTime,dt);

    System.out.println(dt.get_Day() + "/" + dt.get_Month() + "/" + dt.get_Year() + " " + dt.get_Hour() + ":" + dt.get_Minute());
  }
}