javascript - Download excel file from Asp Net Web Api using Angular 1.X -


i attempting download excel file using angular 1.x when try open file corrupted. here code

backend using asp.net web api , report viewer

 public httpresponsemessage usertestreport()     {         return _reporthandler.saveuserexcel();     }   public httpresponsemessage saveuserexcel()     {         var reportname = "test.rdlc";         var reportdatasource = new reportdatasource("testdataset", getusers());          byte[] bytes;          using (var reportviewer = new reportviewer())         {             reportviewer.localreport.reportpath =               httpcontext.current.server.mappath("~/reporting/test/" + reportname);               //datasource             reportviewer.localreport.datasources.add(reportdatasource);              var tt = reportviewer.localreport.listrenderingextensions();              warning[] warnings;             string[] streamids;             string mimetype;             string encoding;             string extension;             string filename;              bytes = reportviewer.localreport.render(                "excelopenxml", null, out mimetype, out encoding,                 out extension,                out streamids, out warnings);              var result = new httpresponsemessage(httpstatuscode.ok);             var stream = new memorystream(bytes);             result.content = new bytearraycontent(stream.toarray());             result.content.headers.contenttype = new mediatypeheadervalue(mimetype);             result.content.headers.contentlength = bytes.length;             return result;         } 

it seems backend code correct because tested using postman (send , download) , worked properly.

frontend code using angular 1.x

var download = function (url, defaultfilename) {         url = 'http://localhost:61123/api/user/usertestreport';         defaultfilename = 'exceltest';         var deferred = $q.defer();         $http.post(url, { responsetype: "arraybuffer" }).then(             function (data, status, headers) {                 debugger;                 var blob = new blob([data.data], { type: data.headers('content-type') });                 filesaver.saveas(blob, defaultfilename + '.xlsx'); } 

i've tried different ways result same. (file corrupted). if change format on backend ('excelopenxml' 'pdf' ) , changes on client side works fine. think problem on excel format , client side. if knows how postman "send , download" great!

please advise me


Comments

Popular posts from this blog

inversion of control - Autofac named registration constructor injection -

verilog - Systemverilog dynamic casting issues -

ios - Change Storyboard View using Seague -