Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

144
Vistas
Ver el archivo desde la cadena base64 en lugar de varbinary

Este es mi programa simple para descargar un archivo de una cadena varbinary al hacer clic.

Controlador:

 public ActionResult Download(string StudentID, string SQNC) { string query = "exec spToGetVarbinaryString'" + StudentID + "','" + SQNC + "' "; string dataStr = GlobalFunction.DataTableToJSON(GlobalFunction.TableFromMSSQL(dbname, query)); dynamic data = JsonConvert.DeserializeObject(dataStr); byte[] file = data[0].ImgVarbinary; return File(file, System.Net.Mime.MediaTypeNames.Application.Octet, (string)data[0].FileName); }

como descargo el archivo:

 <a type="button" href="ControllerName/Download?StudentID=${row.StudentID}&SQNC=${row.SQNC}" class="btn btn-primary btn-sm active" role="button" aria-pressed="true">View File</a>

Ahora, quiero que el archivo en lugar de descargarse al hacer clic, aparecerá en la pestaña o nuevo. Probé el método de convertir mi cadena Varbinary a Base64, pero no lee el archivo PDF para este ejemplo a continuación.

De VarBinary a Base64 en SQL

 update a set a.ImgStr=baze64 from #mytemptable cross apply (select ImgVarbinary as '*' for xml path('')) T (baze64) where a.ImgVarbinary is not null

Visualización del archivo PDF Base64 (la pantalla no funciona)

 <iframe width="500" height="500" src="data:application/pdf;base64,<base64stringhere>"

Encontré una muestra de datos base64 en este enlace JSFiddle , lo probé en local y funciona.

Ejemplo de imagen (uno a la izquierda: mi cadena base64. Uno a la derecha: base64 del js fiddle) ingrese la descripción de la imagen aquí

¿Cómo puedo hacer esto y por qué mi cadena base64 no funciona bien? Gracias por responder.

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

agregue algo como esto en el evento de clic para leer bytes ...

 public class LoadPdfFileHandler : IHttpHandler { public bool IsResuable => false; public void ProcessRequest(HttpContext context) { string id = context.Request.QueryString["id"]; // TODO: Verify that the user is allowed to view the specified record. using (var connection = new MySqlConnection("...")) using (var command = new MySqlCommand("SELECT Data, ContentType FROM SomeTable WHERE ID = @ID", connection)) { command.Parameters.AddWithValue("@ID", id); connection.Open(); using (var reader = command.ExecuteReader(CommandBehavior.CloseConnection)) { if (!reader.Read()) { context.Response.StatusCode = 404; return; } string contentType = (string)dr["ContentType"]; if (string.IsNullOrEmpty(contentType)) contentType = "application/octet-stream"; context.Response.ContentType = contentType; byte[] bytes = (byte[])dr["Data"]; context.Response.BinaryWrite(bytes); } } } }

Luego escriba marco usando esto...

 myiframe.Attributes["src"] = ResolveUrl("~/loadPdfFile.ashx?id=" + idOfTheRecordToLoad);

Puede consultar otra referencia aquí referencia de imagen

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda