I Have an API made using WEB API which gives a pdf file using type as HttpResponseMessage.
This API is being called from a web application, which uses Angular Js.
My problem is, i am not able to download the file when this API is called. It gives me corrupted file.
Here is my WebAPI code
            HttpResponseMessage response = new HttpResponseMessage(HttpStatusCode.OK);
            byte[] fileBytes = System.IO.File.ReadAllBytes(outputFilePath);
            response.Content = new ByteArrayContent(fileBytes);
            response.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment");
            //response.Content.Headers.ContentDisposition.FileName = "Certificate#" + ideaModel.IdeaNumber + ".pdf";
            response.Content.Headers.ContentType = new MediaTypeHeaderValue("application/pdf");
            return new CertificateModel { file = response, fileName = "Certificate#" + ideaModel.IdeaNumber.ToString()+".pdf" };
In angular JS i am calling URL, and trying to save file using FileSaver.js
  $http.post(getUrl('api/Reward/DeliverGift'),
        {
            IdeaNumber: '4',
            SubmittedBy: 'Self',
        },{responseType: 'arraybuffer'}
    ).then(function (response) {            
        var certificateFile = new Blob([response.data.file], { type: 'application/pdf' });
        saveAs(certificateFile, response.data.fileName );
    }, function (errors) {         
    });
My original file is of 195Kb, however above code gives me a file of 9 bytes
 
    