Need to see if your shared folder is taking up space on your dropbox 👨‍💻? Find out how to check here.

Forum Discussion

Saif Lajmi's avatar
Saif Lajmi
Explorer | Level 4
2 years ago

Upload and rendering Pdf files using dropbox into nextjs app

Hello , i need to know about how i can integrate dropbox api to my new nextjs app for dynamicly upload file throw my nextjs page into dropbox and rendreing this pdf file to the user in my app page ... i found ancient javascript api integration but still dont understund how can i implement this using typescript instead of old js version please i need response because my job is struggle for this task.. Thank's 

8 Replies

  • Greg-DB's avatar
    Greg-DB
    Icon for Dropbox Community Moderator rankDropbox Community Moderator
    2 years ago

    Dropbox doesn't offer resources for Next.js in particular, but we do offer an API you can use for listing, uploading, and downloading files, among other operations, from any platform that can make HTTPS requests. You can find everything you need to get started with the Dropbox API, including documentation, tutorials, and SDKs here: https://www.dropbox.com/developers

     

    And while I can't say if it would be suitable for your particular scenario, Dropbox does offer an official JavaScript SDK for accessing the Dropbox API here: https://github.com/dropbox/dropbox-sdk-js

  • Saif Lajmi's avatar
    Saif Lajmi
    Explorer | Level 4
    2 years ago

    thank you for the time but i need simple example how to implement this api of dropbox inside any app javascript and the feautre that i need to create this integration like accesToken and the library for render the file inside my web app because i use this code to render my dropbox file still give me the error of 500 internal server error : 

    import React from 'react';

    interface FileOptions {
      zoom?: "best" | "fit";
    }

    interface FolderOptions {
      view?: "list" | "grid";
      headerSize?: "normal" | "small";
    }

    interface EmbedOptions {
      link: string;
      file?: FileOptions;
      folder?: FolderOptions;
    }

    interface DropboxProps {
      options: EmbedOptions;
    }

    const DropboxEmbed: React.FC<DropboxProps> = ({ options }) => {
      const { link } = options;

      return (
        <iframe
          src={link}
          width="600"
          height="400"
          frameBorder="0"
          allowFullScreen
          title="Embedded Dropbox Content"
        />
      );
    };

    // Example usage
    const exampleOptions: EmbedOptions = {
      // Shared link to Dropbox file
      file: {
        // Sets the zoom mode for embedded files. Defaults to 'best'.
        zoom: "best" // or "fit"
      },
      folder: {
        // Sets the view mode for embedded folders. Defaults to 'list'.
        view: "list", // or "grid"
        headerSize: "normal" // or "small"
      }
    };

    const Secure: React.FC = () => {
      return (
        <div>
          <h1>Embedded Dropbox Content</h1>
          <DropboxEmbed options={exampleOptions} />
        </div>
      );
    };

    export default Secure;
     
  • Здравко's avatar
    Здравко
    Legendary | Level 20
    2 years ago

    Hi Saif Lajmi,

    Dropbox Embedder is a prebuilt component, not just some name as you think as seems! Ensure usage of this component and don't "transform" it to inline frame. Dropbox links cannot be rendered in such a way.

    Hope this gives some direction.

  • Saif Lajmi's avatar
    Saif Lajmi
    Explorer | Level 4
    2 years ago

    thank for your answer please can you explain to me the  prebuilt Dropbox embeder because i dont find any documentation contain the embeder using typscript to allow the  rendring of  my dropbox file inside my nextjs app ?

  • Здравко's avatar
    Здравко
    Legendary | Level 20
    2 years ago

    Saif Lajmi wrote:

    ... i dont find any documentation contain the embeder ...



    Saif Lajmi wrote:

    ...

      // Shared link to Dropbox file
      file: {

    ...


    Hm..🤔 Where you get that link from? Probably there is no any documentation. 🤷

    Rhetoric, of course. I'm not familiar with the environment you use, but there is always a way to render such a thing. Just make sure when you pass the things (already rendered from your environment point of view) there to be code as pointed in the page you get your link from. 🙋 That's it.

  • Saif Lajmi's avatar
    Saif Lajmi
    Explorer | Level 4
    2 years ago

    thank you very much ... i find this documentation about how to emded any think using short  javascript  script in this link https://www.dropbox.com/developers/embedder but i want to transform this into reactjs or nextjs  to implement throw my website i failed that why i'm asking for ...Thank's

  • Здравко's avatar
    Здравко
    Legendary | Level 20
    2 years ago

    In short, you cannot do it in that way.

     

    In more words: Dropbox Embedder works only in browser and that's why you cannot do it in the way you intent to (server side). You can do something similar, but without Dropbox Embedder. In fact you should re-implemed entire rendering process (on your own) using Dropbox API on background if you want to of course.

    Hope this clarifies matter.

  • Saif Lajmi's avatar
    Saif Lajmi
    Explorer | Level 4
    2 years ago

    oh ok the dropbox api sdk is published in github i should be find the way to implement this api inside my rendring website page to make it work using nextjs and typscript instead of javascript that 's the difficult that i'm trying to faced thank's bro😔

About Dropbox API Support & Feedback

Node avatar for Dropbox API Support & Feedback
Find help with the Dropbox API from other developers.

The Dropbox Community team is active from Monday to Friday. We try to respond to you as soon as we can, usually within 2 hours.

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, Facebook or Instagram.

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!