javascriptdropboxdropbox-sdk-js

Dropbox: upload file to public file request with JavaScript


I generated a public file request in Dropbox and would like to write some javascript code to programmatically upload a file which is generated on the flow (e.g. var myJsonString = JSON.stringify(myArray)) to the public folder.

As an example, I created this public folder:

https://www.dropbox.com/request/3gnn9m16eVCwxazuQIOF


Solution

  • Since this is your Dropbox file request, you can use the standard Dropbox API to upload a file to this folder using an access token. There's no API to anonymously upload to some one else's file request folder as a public user would via the webpage, but because this is your folder, you can also make an API proxy to do this if you wanted such an API.

    I've tested uploading to a File request folder with the API and it works fine.

    Listing File Requests

    You can retrieve a list of your file requests here using the 2/file_requests/list RPC API endpoint.

    POST https://api.dropboxapi.com/2/file_requests/list
    

    Like any Dropbox folder, you can upload to a file request via its file path specified by the destination property shown below.

    {
      "file_requests":[
        {
          "id":"0123456789abcdefghi",
          "url":"https://www.dropbox.com/request/0123456789abcdefghi",
          "title":"My File Request",
          "destination":"/File requests/My File Request",
          "created":"2018-06-08T15:17:45Z",
          "is_open":true,
          "file_count":0
        }
      ]
    }
    

    Uploading Files

    Once you have your specific file request folder, you can upload to it using the appropriate full path, e.g. /File requests/My File Request and use it in a standard RPC File Upload API call - /2/files/upload.

    POST https://content.dropboxapi.com/2/files/upload
    

    You will need to specify a path like /File requests/My File Request/My File.png via the Dropbox-API-Arg header as specified in the API Reference:

    Web UI

    Here's a screenshot of the public request root folder in the web UI home folder. The public request folder may change so it's a good idea to check the /2/file_requests/list API call specified above.

    enter image description here

    All File Request APIs

    Here's a list of the Dropbox File Request specific APIs. As mentioned, you can use standard APIs against these folders and files as well.