You might see that the Dropbox Community team have been busy working on some major updates to the Community itself! So, here is some info on what’s changed, what’s staying the same and what you can expect from the Dropbox Community overall.

Forum Discussion

Anonymous One's avatar
Anonymous One
Explorer | Level 4
2 years ago

Upload file into Drop Box From NetSuite Using SuiteScript.

Hi, 

I am trying to upload files from NetSuite into Drop Box using drop box upload API. I am able to upload text as well as CSV file but while uploading files like PDF,DOC,ZIP etc. I am able to upload it but data is missing or I am unable to open that file, Is there any kind of decoding needed for such files.

  • Greg-DB's avatar
    Greg-DB
    Icon for Dropbox Staff rankDropbox Staff

    As noted in the other threads you found, the /2/files/upload Dropbox API endpoint is a "content-upload" style endpoint, meaning it expects the file data in the HTTPS request body. The data should be sent just as a raw octet-stream (per the "Content-Type"), without any additional encoding. (Dropbox doesn't perform any additional operations, such as encoding/decoding, on the received data before storing it.)

     

    I can't offer help with working in NetSuite though, as it's made by a third party, but I'll be happy to help with any issues you may be having with the Dropbox API itself, but I'd need some more information. In that case, please reply with:

    • the steps to reproduce the issue, including relevant code snippet(s), but don't include any access or refresh token(s)
    • the full text of any error or unexpected output
    • Anonymous One's avatar
      Anonymous One
      Explorer | Level 4
      • the steps to reproduce the issue, including relevant code snippet(s), but don't include any access or refresh token(s)
      • the full text of any error or unexpected output
       

      (see my below reply in response to you query for uploading PDF)

      1st try 

      let pdfData = file.load({
                              id: 'file cabinet file id'
                          }) // this will load the file
      let dataContent = pdfData.getContents() // this will fetch the content of the loaded file.
       let apiHeaders =  {
                              "Authorization": `Bearer ${API_TOKEN}`,
                              "Dropbox-API-Arg": `{"path":"/Item Fulfillment/${pdfData.name}",
                              "mode":"add",
                              "autorename":false,
                          "mute":false
                          }`,
                              "Content-Type": "application/octet-stream"
                          } // header for the Drop Box API request
      let responseData = https.post({
                          body: dataContent ,
                          url: API_URL,
                          headers: apiHeaders      
                  })
      In response I got code 200 PDF was uploaded in the DROP BOX but when I tried to Open the PDF got an error that '.PDF files are supported but something went wrong'.
      Note - I tried same approach to upload CSV and TEXT file it worked but not working for files like PDF,DOC,ZIP etc.
       
      2nd try
      let binaryData = encode.convert({
                              string: pdfData.getContents(),
                              inputEncoding: encode.Encoding.BASE_64,
                              outputEncoding: encode.Encoding.UTF_8
                            });
      (Here I tried same approach as above but tried to encode the data content and then sent it to DROP BOX)
       
      Response - Got code 200. I was able to the open the PDF file but it was blank.
       
      • yekai426's avatar
        yekai426
        Explorer | Level 3

        I run into the same issue. Any solution? 

About Dropbox API Support & Feedback

Node avatar for Dropbox API Support & Feedback

Find help with the Dropbox API from other developers.

5,888 PostsLatest Activity: 10 hours ago
326 Following

If you need more help you can view your support options (expected response time for an email or ticket is 24 hours), or contact us on X or Facebook.

For more info on available support options for your Dropbox plan, see this article.

If you found the answer to your question in this Community thread, please 'like' the post to say thanks and to let us know it was useful!