We are aware of the issue with the badge emails resending to everyone, we apologise for the inconvenience - learn more here.

Forum Discussion

steve_lae0901's avatar
steve_lae0901
Helpful | Level 6
8 years ago

downloading file with binary data. Not receiving entire contents of file.

javascript, running in the browser.   using XMLHttpRequest and the content.dropboxapi.com/2/files/download endpoint to download a zip file from my dropbox folder.  I am receiving the file. But th...
  • steve_lae0901's avatar
    8 years ago

    I was not setting the responseType of the xhr object to 'arraybuffer'.  Once I did that the download worked.

     

     

    // ---------------------- dropbox_GetFile_http ------------------------           
    function dropbox_GetFile_http( path, token )                                      
    {                                                                                 
      var xhr = new XMLHttpRequest( ) ;                                              
      xhr.onreadystatechange = function( )                                           
      {                                                                               
        if ( xhr.readyState == XMLHttpRequest.DONE)                                  
        {                                                                             
          if (xhr.status == 200)                                                     
          {                                                                           
            var lx   = xhr.response.byteLength ;                                         
            console.log( 'got data. ' + 'lgth:' + lx ) ;                              
            unzip( xhr.response ) ;                                                  
          } else                                                                      
          {                                                                           
            var msg = 'status:' + xhr.status ;                                       
            console.log( msg ) ;                                                      
          }                                                                           
        }                                                                             
      } ;                                                                             
     
      var runAsync = true ; 
      xhr.open('POST', 'https://content.dropboxapi.com/2/files/download', runAsync);
    xhr.responseType = 'arraybuffer' ;
      xhr.setRequestHeader('Authorization', 'Bearer ' + token );                    
      xhr.setRequestHeader('Dropbox-API-Arg', JSON.stringify({ path: path })) ;     
      xhr.send();
    }