Recibo un objeto de archivo de un controlador MVC como FileContentResult:
[HttpPost] public IActionResult Export(RequestModel request) { // Taking file entity fromdb var File = _Service.GetFileById(request); var cd = new ContentDispositionHeaderValue("attachment") { FileNameStar = File.FileName }; Response.Headers.Add(Microsoft.Net.Http.Headers.HeaderNames.ContentDisposition, cd.ToString()); return File(File.FileContent, File.ContentType); } }En el lado del cliente "React js", permito que el usuario descargue el documento directamente a través de saveAs (biblioteca npm)
// Ajax request ApiClient.post("Api/Export", { id: parseInt(id) }).then(response => { var octetStreamMime = 'application/octet-stream'; var contentType = response.headers['content-type'] || octetStreamMime; var data = [response.data] var file = new Blob(data, { type: contentType }); console.log(file) var FileSaver = require('file-saver'); FileSaver.saveAs(file, fileName); }).catch( err => console.log(err.response.data)); }Cuando descargo el archivo como texto, funciona como se esperaba, sin embargo, con los archivos png/jpg/jpeg, muestra una vista previa de la imagen con el siguiente error:
Mi pregunta es, ¿mis datos están dañados en este escenario? ¿O la matriz de bytes recibida del controlador MVC necesita reformatearse?
Gracias