public void uploadToDropbox(String fileName, DbxClient dbxClient)
     throws DbxException, IOException {
   File inputFile = new File(fileName);
   FileInputStream fis = new FileInputStream(inputFile);
   try {
     DbxEntry.File uploadedFile =
         dbxClient.uploadFile("/" + fileName, DbxWriteMode.add(), inputFile.length(), fis);
     String sharedUrl = dbxClient.createShareableUrl("/" + fileName);
     System.out.println(sharedUrl);
   } finally {
     fis.close();
   }
 }
  public void doUpload(HttpServletRequest request, HttpServletResponse response)
      throws IOException, ServletException {
    if (!common.checkPost(request, response)) return;
    User user = common.requireLoggedInUser(request, response);
    if (user == null) return;

    DbxClient dbxClient = requireDbxClient(request, response, user);
    if (dbxClient == null) return;

    try {
      request.getParts(); // Just call getParts() to trigger the too-large exception.
    } catch (IllegalStateException ex) {
      response.sendError(400, "Request too large");
      return;
    }

    String targetFolder = slurpUtf8Part(request, response, "targetFolder", 1024);
    if (targetFolder == null) return;

    Part filePart = request.getPart("file");
    if (filePart == null) {
      response.sendError(400, "Field \"file\" is missing.");
      return;
    }
    String fileName = filePart.getName();
    if (fileName == null) {
      response.sendError(400, "Field \"file\" has no name.");
      return;
    }

    // Upload file to Dropbox
    String fullTargetPath = targetFolder + "/" + fileName;
    DbxEntry.File metadata;
    try {
      metadata =
          dbxClient.uploadFile(
              fullTargetPath, DbxWriteMode.add(), filePart.getSize(), filePart.getInputStream());
    } catch (DbxException ex) {
      common.handleDbxException(response, user, ex, "uploadFile(" + jq(fullTargetPath) + ", ...)");
      return;
    } catch (IOException ex) {
      response.sendError(400, "Error getting file data from you.");
      return;
    }

    // Display uploaded file metadata.
    response.setContentType("text/html");
    response.setCharacterEncoding("utf-8");
    PrintWriter out = new PrintWriter(new OutputStreamWriter(response.getOutputStream(), "UTF-8"));

    out.println("<html>");
    out.println("<head><title>File uploaded: " + escapeHtml4(metadata.path) + "</title></head>");
    out.println("<body>");
    out.println("<h2>File uploaded: " + escapeHtml4(metadata.path) + "</h2>");
    out.println("<pre>");
    out.print(escapeHtml4(metadata.toStringMultiline()));
    out.println("</pre>");
    out.println("</body>");
    out.println("</html>");

    out.flush();
  }