Variaciones en el nombre de dominio
Primero, familiaricémonos con los métodos de objeto que usaremos. Generalmente usamos el objeto de solicitud para obtener los datos pasados de la página anterior. De manera similar, también podemos usar el objeto Solicitud para obtener datos del archivo cargado usando el método Solicitud. Lectura binaria(). Queremos leer los datos de la imagen de la base de datos y mostrarlos en la página web mediante el siguiente método:
Solicitar. BinaryWrite (). Cuando obtenemos los datos de la imagen y queremos guardarlos en la base de datos, no podemos usar la instrucción Insertar para operar directamente la base de datos, sino usar el método AppendChunk de ADO. De manera similar, deberíamos usar el método GetChunk para leer los datos de la imagen en la base de datos. La sintaxis específica de cada método es la siguiente:
*Solicitud. Sintaxis de lectura binaria:
Variant=request. Lectura binaria (recuento)
Parámetros
Diferentes
El valor de retorno contiene los datos leídos del cliente.
Count
Indica la cantidad de datos a leer del cliente que es menor o igual a la cantidad de datos obtenidos mediante el método Request.TotalBytes.
*Solicitar. Sintaxis de escritura binaria:
Solicitud. BinaryWritedata
Parámetros
Datos
El paquete de datos que se escribirá en el navegador del cliente.
*Solicitar. Sintaxis de TotalBytes:
Variante = solicitud. Bytes totales
Parámetros
Diferentes
Devuelve el número de bytes de datos leídos del cliente.
*Sintaxis de AppendChunk
Agrega datos a texto grande, campos de datos binarios u objetos de parámetros.
Objeto. AppendChunkData
Parámetros
Campos de objeto u objetos de parámetro
Variables de datos que contienen datos agregados al objeto.
Explicación
Utilice el método AppendChunk del objeto Campo o Parámetro para convertir un número binario largo o un número de carácter.
Muestra los objetos rellenos. Cuando su sistema tiene memoria limitada, puede usar el método AppendChunk para realizar algunas operaciones con valores largos, pero no todas las operaciones.
*Sintaxis GetChunk
Devuelve todo o parte del contenido de un objeto de campo de datos binarios o de texto grande.
Variable = campo. GetChunk(tamaño)
Valor de retorno
Volver a la transformación.
Parámetros
Tamaño de la expresión entera larga, igual al número de bytes o caracteres a recuperar.
Explicación
Utilice el método GetChunk del objeto Field para recuperar algunos o todos sus datos binarios o de caracteres largos.
Cuando el sistema tiene memoria limitada, el método GetChunk se puede utilizar para manejar algunos valores largos, pero no todos los valores largos.
Los datos devueltos por la llamada GetChunk se asignarán a la "variable". Si el tamaño es mayor que los datos restantes,
GetChunk solo devuelve los datos restantes y no llena la "variable" con espacios. Si el campo está vacío, el método GetChunk devuelve Null.
Cada llamada subsiguiente a GetChunk recuperará datos desde donde terminó la llamada anterior a GetChunk. Sin embargo, si recupera datos de un campo y luego establece o lee el valor de otro campo en el registro actual, ADO pensará que los datos se recuperaron del primer campo. Si se vuelve a llamar al método GetChunk en el primer campo, ADO interpretará la llamada como una nueva operación GetChunk y comenzará a leer desde el principio del registro. Si el otro objeto de conjunto de registros no es una copia del primer objeto de conjunto de registros, acceder a sus campos no interrumpirá la operación GetChunk.
Si el bit adFldLong en la propiedad Atributos del objeto Campo está establecido en Verdadero, puede usar el método GetChunk en el campo.
Si no hay ningún registro actual al utilizar el método Getchunk en un objeto Field, se generará el error 3021.
A continuación, diseñaremos nuestra base de datos. Como prueba, nuestra estructura de base de datos es la siguiente (access2000):
Descripción del tipo de nombre de campo
Valor de clave primaria de numeración automática de ID
Se utiliza el objeto OLE Img para almacenar datos de imágenes.
Para MSSQLServer7, la estructura correspondiente es la siguiente:
Descripción del tipo de nombre de campo
Valor de clave primaria Id int (Identidad)
Imagen img Se utiliza para guardar datos de imagen.
Ahora hemos escrito oficialmente nuestra parte de carga de código ASP puro. Primero, proporcionamos a los usuarios una interfaz de carga que les permite seleccionar imágenes para cargar. El código es el siguiente
(upload.htm):
lthtml gt
ltbody gt
ltcenter gt
ltform nombre = " formulario principal " enctype = " multipart/form-data " acción = " proceso . ASP " método = post gt;
ltinputtype = nombre de archivo = mefile gt ltbr gt
tipo de entrada = nombre de envío = valor OK = " OK " gt;
lt/form gt
lt/center gt; gt;
lt/html gt;
Nota enctype="multipart/Form-data". Este atributo debe estar presente en el formulario, de lo contrario no se obtendrán los datos cargados. A continuación, debemos procesar los datos obtenidos del navegador de Process.asp, porque los datos obtenidos en Process.asp no solo contienen los datos que queremos cargar en la imagen, sino que también contienen otra información inútil. Necesitamos eliminar datos redundantes y guardar los datos de la imagen procesada en la base de datos. Aquí tomamos access2000 como ejemplo.
El código específico es el siguiente (process.asp):
lt
response.buffer=true
formsize=request.totalbytes
formdata = solicitud. lectura binaria(tamaño del formulario)
bncrlf=chrB(13)chrB(10)
divider=leftB(formdata, clng(instrb(formdata, bncrlf))- 1)
datastart=instrb(formdata, bncrlf ampbncrlf) 4
dataend = instrb(datos inicio 1, formdata, divisor)-datastart
mydata=midb (formdata, datastart, dataend)
setconnGraph=servidor. CreateObject("ADODB.connection ")
Diagrama de conexión. ConnectionString = " controlador = { controlador de acceso de Microsoft (*.MDB)}; DBQ = " & servidor. MapPath("images.MDB") & "uid=pwd="
Mapa de conexión. Abrir
setrec = server . createobject(" adodb . recordset ")
Recomendado. Abra "SELECCIONAR * DE [imágenes] donde es nulo", connGraph, 1, 3
rec.addnew
rec("img "). appendchunkmydata
Recomendar actualización
Registro cerrado
setrec=Ninguno
setconnGraph=Ninguno
gt
Bien, ahora hemos guardado las imágenes cargadas en una base de datos llamada imágenes.mdb. El trabajo restante es mostrar los datos de la imagen en la base de datos en la página web. Generalmente, en HTML, las imágenes usan
ltIMGSRC="showimg.asp?id = xxx " gt
Entonces, lo que tenemos que hacer es leer de la base de datos de showimg.asp Elegible .
Datos y devuelve el atributo SRC. El código específico es el siguiente (showimg.asp):
lt
setconnGraph=server. CreateObject("ADODB.connection ")
Diagrama de conexión. ConnectionString = " controlador = {controlador de acceso de Microsoft (*.MDB)}; DBQ = " amp;
Servidor. MapPath("images.MDB") & "uid=pwd="
Mapa de conexión.
open
setrec = server . createobject(" adodb . recordset ")
strsql = " selectimgfroimageswhereid = " & trim(request(" id "))
Esquema de conexiones, 1, 1
Respuesta. ContentType="image/* "
Respuesta. BinaryWriterec("img"). getChunk(7500000)
Registro cerrado
setrec=Ninguno
setconnGraph=Ninguno
gt
Tenga en cuenta , debe especificar la respuesta. ContentType="image/* "Luego envíelo al navegador.
Para poder visualizar la pantalla con normalidad.
Lo último a tener en cuenta es que el procesamiento en mi procesamiento no considera otros datos en la primera página (upload.htm), como