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

È stato utile?

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
scroll top