¿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.
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, p >
[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;
} }
}
}