Estoy tratando de descargar un archivo de tipo DataBaseFile que es una copia de seguridad de sqlite, por javascript. Envío este archivo como un byte [] a través de un controlador a javascript. Sin embargo, la descarga está dañada o es incorrecta, y el tamaño del archivo es mayor que el correcto. Y si guardo el mismo archivo a través de C#, se guarda bien sin errores. ¿Alguien tiene una solución?
Tengo el siguiente código en C# para obtener un archivo de tipo DataBaseFile (.db) de la base de datos y enviarlo a javascript.
var posBackup = PosBackupModel.Get(conexao, idEmpresa, dataHora); using (var memoryStream = new MemoryStream(posBackup.Backup)) { var bytes = memoryStream.ToArray(); return Json( new { nome = "Backup", backup = bytes }); }A continuación se muestra mi código javascript para descargar el archivo:
function DownloadPosBackup(dataHora) { $.ajax( { url: '@Url.Action("DownloadPosBackup", "Empresa"), type: "GET", async: true, success: function (response) { blob = new Blob([response.backup], { type: "text/plain;charset=utf-8" }); saveAs(blob, response.nome + ".db"); } }); return false; }Pero descarga el archivo dañado (o incorrecto), viene con más KB que el correcto.
Si guardo el archivo a través de C # usando el siguiente código, se guarda bien, pero necesito que sea a través de javascript, ¿alguien tiene alguna solución?
var posBackup = PosBackupModel.Get(conexao, idEmpresa, dataHora); using (var memoryStream = new MemoryStream(posBackup.Backup)) { using (var fileStream = new FileStream("C:\\Users\\mathe\\Desktop\\teste\\test.db", FileMode.CreateNew, FileAccess.ReadWrite)) { memoryStream.WriteTo(fileStream); } }