¿Cómo guardar un archivo de imagen como un registro binario en una base de datos de servidor SQL? (Nota: la ruta de la imagen no está incluida), es mejor tener el código fuente.
ImageDescription es el campo de descripción del archivo de imagen de almacenamiento. y la columna ImageSize es el campo Almacenar la longitud del archivo de imagen, ImageSize
Crear tabla [dbo].[ImageStore] (
[ImageID] [int] IDENTITY (1, 1) NOT NULL,
[ImageData] [image] NULL ,
[ImageContentType] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
[ImageDescription] [varchar ] (200) COLLATE Chinese_PRC_CI_AS NULL ,
[ImageSize] [int] NULL
)ON [ PRIMARY] TEXTIMAGE_ON [PRIMARY] Para almacenar la imagen en la base de datos: use System
Usar System.Collections
Usar System.ComponentModel
Usar System.Data
Usar System.Drawing; >
Utilice System.Web ;
Utilice System.Web.SessionState
Utilice System.Web. >Espacio de nombres UpLoadFile
{
/// lt; resumengt;
/// Descripción resumida de UpLoadImage.
clase pública UpLoadImage: System.Web.UI.Page
{
System.Web.UI.WebControls.Button protegido btnUpload;
System.Web protegido. UI.WebControls.Button btnUpload;
/// Descripción resumida de UpLoadImage
sistema protegido.Web.UI.WebControls.Label txtMessage
sistema protegido. Web.UI.WebControls.TextBox txtDescription;
protegido System.Web.UI.WebControls.HtmlControls.HtmlTag
protegido System.Web.UI.HtmlControls.HtmlTable Table1;
protected System.Web.UI.HtmlControls.HtmlInputFile UP_FILE; //HtmlControl, objeto de control WebControls
protected Int32 FileLength = 0;
Private void Page_Load(remitente del objeto, System.EventArgs e)
{
// Coloque aquí el código de usuario para la página de inicialización
if(!Page.IsPostBack)
{
}
}
#región Código generado por Web Form Designer
anular el vacío protegido OnInit(EventArgs e) p>
{
//p>
// CODEGEN: ASP.NET Web Form Designer necesita llamar a este código. InitializeComponent();
base.OnInit(e);
}
/// resumengt; Designer admite el método requerido; no utilice el editor de código para modificar
/// el contenido de este método.
btnUpload.Click = new System.EventHandler(this.btnUpload_Click);
this.Load = new System.EventHandler(this.Page_Load }
#endregion private void btnUpload_Click(objeto); remitente, System.EventArgs e)
{
HttpPostedFile UpFile = this.UP_FILE.PublishFile; //HttpPostedFile UpFile = this.UP_FILE.PublishFile; //HttpPostedFile UpFile = this.UP_FILE; .PublishFile; //HttpPostedFile UpFile = this.UP_FILE.PublishFilePostedFile; //Objeto HttpPostedFile, utilizado para leer las propiedades del archivo de imagen
FileLength = UpFile.ContentLength; //Registrar longitud del archivo
intente
{
if (FileLength == 0) <
{ //Cuando FileLength es cero
txtMessage.Text = " lt;bgt; Seleccione el archivo que desea cargar lt;/bgt;";
}
else
{
Byte[] FileByteArray = new Byte[FileLength]; // El archivo de imagen almacena temporalmente la matriz de bytes
Stream StreamObject = UpFile.InputStream // Crea un par de flujo de datos
// Leer datos del archivo de imagen, FileByteArray es el cuerpo de almacenamiento de datos, 0 es la posición del puntero de datos, FileLnegth es la longitud de los datos
StreamObject.Read(FileByteArray) = new Byte[FileLength] // Leer datos del archivo de imagen.
Read(FileByteArray, 0, FileLength);
//Establecer enlace de SQL Server
SqlConnection Con = new SqlConnection("uid=sa; pwd=; catálogo inicial=EE; fuente de datos =127.0.0.1;Tiempo de espera de conexión=90");
String SqlCmd = "INSERTAR EN ImageStore (ImageData, ImageContentType, ImageDescription, ImageSize) VALORES (@Image, @ContentType, @ImageDescription, @ImageSize)"
SqlCommand CmdObj = new SqlCommand(SqlCmd, Con);
CmdObj.Add("@ImageSize", SqlDbType.BigInt, 8).Value = UpFile.ContentLength ; p>
p>
Con.Open();
CmdObj.ExecuteNonQuery();
Con.Close(); .Text = "lt ;pgt;lt;bgt; ¡OK! Has subido la imagen correctamentelt;/bgt;"; // Indica que la carga se realizó correctamente
}
}
catch (Excepción ex)
{
txtMessage.Text = ex.Message.ToString()
}
}
}}}
}
Leer datos de imagen de la base de datos y mostrar: usando Sistema
usando; System.Collections
usando System.Message.ToString() usa System.Collections
usa System.ComponentModel
usa System.Data ; p>
usa System .Drawing
usa System.Web
SessionState
usa System.Web.UI; p> Usar System.Web.UI.WebControls
Usar System.UI.HtmlControls
Usar System.Drawing
Usar System.Drawing; . HtmlControls;
usando System.IO;
usando System.Data.SqlClient; espacio de nombres UpLoadFile
{
/// lt; resumengt;
/// lt;summarygt;
/// Descripción resumida de ReadImage.
/// lt;/summarygt;
clase pública ReadImage: System.Web.UI.Page
{
vacío privado Page_Load(object sender, System.EventArgs e)
{
// Coloque aquí el código para la página de inicialización del usuario
if(!Page.IsPostBack)
{
string id = Request.QueryString["ImgID"] // Obtener el ID de la imagen if (id ! = ""amp; id ! = null amp;amp ; identificación ! = cadena.Vacío)
{
MostrarImagen (
}
}
}
}
}#region Código generado por Web Form Designer
anular el vacío protegido OnInit(EventArgs e)
{ p>
//
// CODEGEN: ASP.NET Web Form Designer necesita llamar a este código. InitializeComponent();
base.OnInit(e);
}
/// resumen gt; / Método requerido de soporte del diseñador: no use el editor de código para modificar
/// el contenido de este método.
/// lt;/summarygt;
private void InitializeComponent()
{
this.Load = new System.EventHandler (this.Page_Load); }
#endregion public void ShowImage(id de cadena)
{
int ImgID = Convert.ToInt32(id); ImgID es el ID de la imagen
// Establecer enlace a la base de datos
SqlConnection Con = new SqlConnection("uid=sa; pwd=; catálogo inicial=EE; fuente de datos = 127.0.0.1; Tiempo de espera de conexión=90");
String SqlCmd = "SELECT * FROM ImageStore WHERE ImageID = @ImageID";
SqlCommand CmdObj = new SqlCommand(SqlCmd, Con);
CmdObj.Parameters.Add("@ImageID", SqlDbType.Int).Value = ImgID
prueba
{
Con.Open; ( );
SqlDataReader SqlReader = CmdObj.ExecuteReader();
SqlReader.Read()
Response.ContentType = (cadena)SqlReader["ImageContentType; " ]; // Establecer el tipo de archivo de salida
// Generar el sistema numérico binario del archivo de imagen
Response.OutputStream.Write();
Response.OutputStream.Write();
Response.OutputStream.Write()
Response.OutputStream.Write((byte[])SqlReader["ImageData"], 0, ( int) SqlReader[ "ImageSize"]);
Response.End()
Con.Close()
Con.Close()Close(;
p>
}
catch
{
Response.Write("lt;scriptgt. alert('); Esta imagen no existe');lt ;/scriptgt;");
return;
}