Forum Discussion

anandjpr's avatar
anandjpr
Explorer | Level 3
5 years ago
Solved

Issue in getting content of PDF/Doc etc

We are consuming dropbox api from our Delphi App.

We are facing issue in getting PDF from dropbox(Upload,delete is working fine).

 

Getting Blank PDF

 

Except text file i am facing issue in getting file content(png,Doc,Pdf)
please suggest what wrong is happening there.

 

  • Greg-DB's avatar
    Greg-DB
    5 years ago

    Thanks! That does show the raw PDF data, indicating that the Dropbox API call itself did succeed and return the file data.

     

    That being the case, it looks like the issue here is with writing that data to the local filesystem. As that's not related to the Dropbox API itself, I'm afraid I can't offer much help with that. You'll need to debug that part of your code, such as the "SaveToFile" method. For instance, make sure you have the right local path and that you have the permissions needed to write to that path.

10 Replies

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

    First, can you confirm that the "/test/BackcardHTTPS.pdf" file on Dropbox itself is not empty and does contain the expected data?

     

    Then, can you inspect the API response? Check the status code; if it's not 200, then the call failed for some reason. You should also check the response headers for metadata, and response body for the file data, if the call succeeded. If it failed, there should be some error.

     

    By the way, you shouldn't post your access token like that. You should redact it from your image, and then revoke and replace it.

  • anandjpr's avatar
    anandjpr
    Explorer | Level 3
    5 years ago

    I have checked  "BackcardHTTPS.pdf" contain proper data.

    And Api response is code is 200.

     

    When I am trying to read text file(*.txt) every thing is working fine.

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

    What about the rest of the response? What's in the headers and body?

  • anandjpr's avatar
    anandjpr
    Explorer | Level 3
    5 years ago

    I am Sharing Sample Project code .

     

    Request you to please have a look and suggest what wrong happening there.

     

    Sample Code:

    procedure TForm6.FormCreate(Sender: TObject);
    var
    url:string;
    lParams: TStream;
    FStream: TStream;
    SaveDir,TempFile:AnsiString;
    MyText: TStringlist;
    req:string;
    response:AnsiString;
    Base64: string;

    Input: TStringStream;
    Output: TFileStream;

    begin
    try
    FStream := TStringStream.Create;
    MyText:= TStringlist.create();
    try

    IdHTTP1.Request.CustomHeaders.Values['Dropbox-API-Arg'] :='{"path":"/test/BankcardHTTPS.pdf"}';
    IdHTTP1.Request.CustomHeaders.Values['Authorization'] := 'Bearer <REDACTED>';
    response:=IdHTTP1.Post('https://content.dropboxapi.com/2/files/download',FStream);

    MyText.Add(response);
    MyText.SaveToFile('.\BankcardHTTPS.pdf');

    except
    on E: Exception do
    begin
    ShowMessage('Error: ' + E.Message);
    end;
    end;
    finally
    lParams.Free;
    MyText.Free;
    end;
    end;

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

    This shows your request headers and code, but not the response headers or body. Can you inspect the response headers/body?

     

    Also, do not post your access token, since it enables access to your account. You should revoke it since you've posted it publicly.

  • anandjpr's avatar
    anandjpr
    Explorer | Level 3
    5 years ago

    Sorry i missed to share response in last chat.

    I have saved response in txt fine and sharing screenshot with you.

     

     

     

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

    Thanks! That does show the raw PDF data, indicating that the Dropbox API call itself did succeed and return the file data.

     

    That being the case, it looks like the issue here is with writing that data to the local filesystem. As that's not related to the Dropbox API itself, I'm afraid I can't offer much help with that. You'll need to debug that part of your code, such as the "SaveToFile" method. For instance, make sure you have the right local path and that you have the permissions needed to write to that path.

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!