Cuando trabajamos en proyectos web, a menudo necesitamos usar la función de cargar archivos, pero cargar varios tipos de archivos en un entorno de aplicaciones basado en un navegador/servidor siempre ha preocupado a los usuarios. Entonces, ¿cuál es el método de ASP para cargar archivos?
uno. Análisis del principio de implementación de la carga de archivos basado en ASP
El principio básico es: use el método BinaryRead del objeto ADO Stream para leer todos los datos en el formulario, interceptar los datos del archivo requeridos y guardarlo en archivos binarios.
Aquí hay un ejemplo de la página del archivo de carga (upload.htm):
< html >< corporal >< form de nombre = "upload" método = "post" enctype = "multipart/form-data" Action = "upload.asp"> < Entrada tipo = "file" name = "nombre de archivo"> < type de entrada = "enviar" valor = "< </td> </form> </body> </html>
El objeto de archivo se usa en el programa, de modo que los datos originales leídos mediante el método BinaryRead en upload.asp no son solo los datos del archivo seleccionado en sí, sino que también contienen descripciones de la ruta, tipo, nombre de dominio de la página de envío y otra información relacionada en el disco duro del usuario. De esta manera, necesitamos extraer el contenido específico del archivo de él. Según el análisis, la línea divisoria entre la información del encabezado de los datos y los datos es de dos pares de roturas de la línea de retorno del carro, y también hay información de separación al final. Podemos usar un método similar para obtener datos de archivo.
Dim formData.FormSize, DataStart, CLSTR, DivStrformSize = request.totalByTesFormData = request.binaryRead (FormSize) Clstr = CHRB (13) & CHRB (10) DATASTART = INSTRB (FORMDATA.CLSTR Y CLSTR)+4'4 son dos la longitud de la longitud de retorno de la línea de retorno de la línea de retorno DivStr = LeftB (FormData, InstrB (FormData, CLSTR) -1) DataSize = instrb (DataStart+1, FormData, DivStr) -Datastart-2FormData = MidB (FormData, DataStart, DataSize) FormData es el contenido del archivo.
El tratamiento correspondiente se puede realizar según sea necesario en el medio. El trabajo final es guardar el archivo. Hay dos formas de guardar: una es usar métodos de operación de archivos binarios en programas como VB o VC, agregar bibliotecas de tipo apropiadas al proyecto y finalmente compilarlo en un archivo DLL y registrar el archivo DLL cuando lo use. El programa de almacenamiento de archivos es el siguiente:
Función pública saveFile (pathname as string) como string dim objContext como objectContext dim objRequest como solicitud Establecer objContext = getObjectContext () set objrequest = objContext ("request") La siguiente pieza de código es una operación relacionada para el almacenamiento de archivo dim formeData () como byte, clstR, divtr dim aTSteTart por mucho tiempo, dataS de larga data de largo. DataSize = objRequest.totalBytes redim formdata (dataSize-1) formData = objRequest.binaryRead (dataSize) clstr = chrb (13) & chrb (10) dataStart = InstrB (FormData, CLSTR & CLSTR) +4 Divstr = Leftb (FormData, InstrB (FormData, CLSTR) -1) DataSize = InstrB (DataStart+1, FormData, DivStr) -DatASTART-2 FormData = MidB (FormData, DataStart, DataSize) 'Cree un archivo binario y escriba FormData para abrir PathName para Binary como 1 Put #1, FormData Close #1 SaveFile = "OK!" Función finalEl segundo método es utilizar el método de operación de archivo binario proporcionado en la transmisión ADO para completarlo. La declaración para guardar el archivo es: streamobj.savetofile (nombre de archivo, 2). En este tipo de operación, podemos almacenar las operaciones relevantes en un archivo de clase. Al aplicar, solo incluya el archivo de clase en el programa ASP. Para obtener métodos de procesamiento específicos, consulte la introducción relevante.
dos. Ejemplo de método de implementación de carga de archivos
Para implementar cargas de archivos, puede usar componentes o métodos sin componentes. Para clases de componentes, como Microsoft Publicing Aceptor (MPA para abreviar), es un componente de servidor gratuito lanzado por Microsoft. La instalación de tales componentes también es más conveniente. Para el MPA de Microsoft, simplemente ejecute sus archivos de instalación. Para el formulario de componente DLL general, necesitamos registrarnos. Por ejemplo, para usar Aspcnup.dll, simplemente ejecute regsvr32 [rath/] aspcnup.dll en la ventana 2000, y el sistema solicita que el registro sea exitoso, puede usar este componente; Para la clase sin componente, al usarla, solo incluya las siguientes afirmaciones en el controlador:
<!-#include file = "upload.inc"-> configurar upload = new upload_5xsoft 'Crear objeto de carga
Para las propiedades y los métodos de operación, consulte el manual del usuario de este componente.
El siguiente es el código fuente (upload.asp) para cargar algunos tipos de archivos utilizando el componente Aspcnup.dll como ejemplo:
<% @ lengua = "vBscript" set fileUp = server.createObject ("aspcn.upload") fileup.maxsize = 200000 fileup.path = "d:/upfile" fileup.upload para i = 0 a fileUp.count fieldName = fileUp.fieldName (i) if fileUp.filetype (fieldName) = "Zip" o "Zip" ileUp.fileType (fieldName) = "rar" y luego fileUp.save fieldName final si el siguiente establecimiento de archivos = nada%>El modelo de aplicación del navegador/servidor todavía se está desarrollando rápidamente. En ASP.NET recientemente lanzado de Microsoft, la función de carga de archivos se ha incorporado, por lo que es muy simple y conveniente de usar. Como nueva tecnología, ASP.NET no es solo una actualización simple de ASP. Es un nuevo marco para el desarrollo web, que contiene muchas características nuevas. ASP.NET proporciona un código de estructura más fácil de escribir y más claro, y podremos reutilizar y compartir más fácilmente, desarrollando así programas más prácticos.
Lo anterior es todo el contenido de este artículo. Espero que el contenido de este artículo sea de ayuda para el estudio o el trabajo de todos. ¡También espero apoyar el nuevo canal de tecnología incorrecto!