Recupero MS Word Document dal database e salvare sul Posto
-
26-09-2019 - |
Domanda
Ho usato il controllo AsyncFileUpload AJAX per caricare un file a una colonna in un database SQL Server utilizzando LINQ to SQL. Come faccio a recuperare il documento dal database e consentire all'utente di salvare a un'unità locale utilizzando una macchina finestra di dialogo Salva con LINQ to SQL? Questa è l'applicazione web ASP.NET. La colonna del database DocumentFileContent è un immagine tipo di dati SQL Server. Grazie
Soluzione
Il modo migliore in WebForms è quello di utilizzare un HTTP handler.
La query DB per un tipo di dati image
sarà mappare ad un byte[]
.
public class Document : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
using (SQLConnection con = new SQLConnection)
{
SqlCommand command = new SqlCommand("SELECT imagefield FROM table", con);
connection.Open();
SqlDataReader reader = command.ExecuteReader();
if (reader.HasRows)
{
while (reader.Read())
{
context.Response.ContentType = "application/msword";
context.Response.BinaryWrite(reader["imagefield"]);
}
}
reader.Close();
}
}
public bool IsReusable
{
get
{
return false;
}
}
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow