Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

147
Views
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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!