Red de conocimiento informático - Conocimiento del nombre de dominio - ¿Cómo guardar archivos como registros binarios en la base de datos del servidor SQL? (Nota: no utilice la ruta), es mejor tener el código fuente.

¿Cómo guardar archivos como registros binarios en la base de datos del servidor SQL? (Nota: no utilice la ruta), es mejor tener el código fuente.

Primero, cree una tabla de base de datos para el almacenamiento de imágenes en SQL Server, donde la columna ImageData es el campo de almacenamiento de datos binarios de la imagen y la columna ImageContentType es el campo de registro del tipo de archivo de imagen.

La columna ImageDescription es el campo de descripción para guardar archivos de imágenes y la columna ImageSize es el campo de longitud para guardar archivos de imágenes. La estructura es la siguiente:

Crear tabla [dbo]. . [Tienda de imágenes](

[ImageID] [int] IDENTITY (1, 1) no está vacía,

[ImageData] [imagen] está vacía,

[tipo de contenido de imagen][varchar](50)COLLATE Chinese _ PRC _ CI _ AS NULL

[descripción de imagen][varchar](200)COLLATE Chinese _ PRC _ CI _ AS NULL,

[ImageSize] [int] NULL

)on[primary]imagen de texto _ on[primary]Guardar la imagen en la base de datos: usar System

Usar el sistema . Colección;

Usa el sistema. Modelo de componentes;

Utilizar el sistema. Datos;

Utilizar el sistema. Dibujo;

Usa el sistema. Web

Usa el sistema. Web . SessionState

Usar sistema. Web UI

Usa el sistema. Web.UI.WebControls

Utiliza el sistema. Web .UI.HtmlControls

Usa el sistema. Io;

Usa el sistema. Archivo de carga del espacio de nombres SqlClient

{

///& lt; Resumen & gt

Descripción resumida de UpLoadImage.

///</summary>

Clase pública UpLoadImage: System. Interfaz web

{

Sistema protegido. web .ui .controles web . botón btnUpload;

Sistema protegido. web .ui . controles web . mensaje de texto de etiqueta;

Sistema protegido. web .ui . controles web . descripción de texto del cuadro de texto;

Sistema protegido. web .ui .controles html.tabla html 1;

Sistema protegido. web .ui .html controles .html input FILE UP_FILE; //HtmlControl y WebControls controlan objetos

Longitud del archivo Int32 protegido = 0;

Page_Load vacío privado (objeto enviado Party, system. EventArgs e)

{

//Ponga aquí el código de usuario para la página de inicialización

Si (! page.

IsPostBack)

{

}

}

#Código generado por el Diseñador de formularios web regional

Anular protected void OnInit(EventArgs e)

{

//

//CODEGEN: Esta llamada es requerida por ASP.NET Web Forms Designer.

//

inicializar componente();

Base. on init(e);

}

///<summary>

///El diseñador admite los métodos requeridos; no modificar

///Utilice el editor de código para mostrar el contenido de este método.

///</summary>

Vacío privado InitializeComponent()

{

this.btnUpload.Click +=Nuevo sistema. EventHandler(this . btnupload _ Click);

This. cargar+=nuevo sistema. EventHandler(this. page_Load);}

# región final privada void btnUpload_Click(objeto remitente, system. EventArgs e)

{

HttpPostedFile UpFile = this. ARRIBA_ARCHIVO. Objeto PostedFile//HttpPostedFile, utilizado para leer los atributos del archivo de imagen.

LongitudArchivo = ArchivoArriba. ContentLength//Registrar longitud del archivo

Pruebe

{

if (longitud del archivo == 0)

{//Cuando el archivo longitud Cuando es cero

SMS. Text = " & ltb & gtPor favor seleccione el archivo que desea cargar

}

Otro

{

Byte[] FileByteArray = New bytes [longitud del archivo]; // Almacena temporalmente la matriz de bytes del archivo de imagen.

Stream StreamObject = UpFile

//Lee los datos del archivo, donde está FileByteArray. el cuerpo del almacenamiento de datos, 0 es la posición del puntero de datos y FileLnegth es la longitud de los datos

StreamObjectRead(FileByteArray, 0, file length);

//Crear enlace de SQL Server.

SqlConnection Con = new SqlConnection(" uid = sa; pwd =; directorio inicial = origen de datos EE = 127.0.0.1; tiempo de espera de conexión = 90");

string SqlCmd = " INSERT INTO ImageStore(ImageData, ImageContentType, ImageDescription, ImageSize) value(@Image, @ContentType, @ImageDescription, @ImageSize)";

SqlCommand cmd obj = new SqlCommand(SqlCmd, Con );

CmdObj.Parámetros. Agregar("@Image", SqlDbType. Binario, longitud del archivo = FileByteArray

CmdObj.

Parámetros. Agregar ("@ContentType", SqlDbType. VarChar, 50). Valor = UpFile. ContentType//Tipo de archivo de registro

//Cargar otros registros de datos de una sola tabla.

CmdObj. Parámetros Agregar("@ImageDescription", SqlDbType. VarChar, 200). valor = txtDescripción. Texto;

//Longitud del archivo de registro, utilizado al leer.

CmdObj. Parámetros Agregar("@ImageSize", SqlDbType. BigInt, 8). Valor = UpFile. ContentLength

con Open();

CmdObj. EjecutarNonQuery();

con. Cerrar();

SMS. Text = " & ltp & gt& ltb & gt¡Está bien! Has subido correctamente tu imagen

}

}

catch(excepción ex)

{

Texto = mensaje ToString();

}

}

}

Leer los datos de la imagen en la base de datos y mostrarlos: usar el sistema

Usar la colección

Usar el modelo de componente del sistema; system.Data;

Usar system.Draw;

Usar sistema Web.SessionState

Usar System UI

Usar System. Web.UI.WebControls

Usar Web.UI.HtmlControls

Usar System.

Subir archivos usando el espacio de nombres SqlClient. p>

{

///& lt; Resumen>

Leer descripción del resumen de la imagen

///</summary>

Imagen de lectura de clase pública: interfaz web del sistema

{

Page_Load vacío privado (remitente del objeto, sistema. EventArgs e)

{

//Ingrese el código de usuario para inicializar la página aquí

If (!Page.IsPostBack)

{

ID de cadena = cadena de consulta. ["ImgID"]; //Obtener ID si (id!= "" && ampid! = null & amp& ampid! = string. vacío)

{

mostrar imagen(id) );

}

}

} #Código generado por el diseñador de formularios web regional

Anular el vacío protegido OnInit(EventArgs e)

{

/ /

//CODEGEN: ASP.NET Web Forms Designer requiere esta llamada

//

inicializar componente();

<. p>base.on init(e);

}

///<summary>

///Se requiere soporte del diseñador Método - No modificar

///Utilice el editor de código para mostrar el contenido de este método.

///</summary>

Private void InitializeComponent()

{

Esto. cargar+=nuevo sistema. EventHandler(this.page_Load);}

#endregion public void ShowImage(String id)

{

int ImgID = Convertir. toint 32(id); //ImgID es la identificación con imagen.

//Establecer enlace de base de datos

SqlConnection Con = new SqlConnection(" uid = sa; pwd =; directorio inicial = fuente de datos EE = 127. 0. 0. 1; tiempo de espera de conexión = 90");

cadena SqlCmd = " SELECCIONAR * DESDE ImageStore DONDE ImageID = @ ImageID ";

SqlCommand cmd obj = new SqlCommand(SqlCmd, Con);

CmdObj. Parámetros. Agregar("@ImageID", SqlDbType. Int). Valor = ImgID

Probar

{

con Open();

SqlDataReader SqlReader = CmdObj. ExecuteReader();

SqlReader. leer();

Respuesta. tipo de contenido = (cadena)Lector SQL[" tipo de contenido de imagen "] //Establecer el tipo de archivo de salida

//Sistema de números binarios del archivo de imagen de salida

Respuesta. flujo de salida. Write((byte[])lector SQL["ImageData"], 0, (int)lector SQL["ImageSize"]);

Respuesta. end();

con . Close();

}

Captura

{

Respuesta. write(" & ltscript& gtAlert('Esta imagen no existe'); & lt/script >);

Return;

} }

}

}