Página recibir.asp ----------------- <% Dim objUpload, objFich, strNombreFichero Dim strNombre, strEdad 'Creamos el objeto set objUpload = new xelUpload 'Recibimos el formulario objUpload.Upload() 'Mostramos total de ficheros recibidos Response.Write ( objUpload.Ficheros.Count & " ficheros recibidos.") 'Mostramos los campos del formulario de texto: Response.Write ("Tu nombre es " & objUpload.Form("nombreusuario") & " ") Response.Write (" Tu edad es " & objUpload.Form("edad") & " ") 'Y ahora mostramos los datos del fichero enviado: 'Lo sacamos a una variable por comodidad set objFich = objUpload.Ficheros("fichero") Response.Write (" " & objFich.Nombre & " ") Response.Write("Tamaño: " & objFich.Tamano & " ") Response.Write("Tipo de contenido: " & objFich.TipoContenido & " ") 'Guardamos el fichero, con su nombre, en el directorio 'en el que se encuentra esta página objFich.Guardar(Server.MapPath(".")) 'Y guardamos una copia, con nombre "subido.bin" objFich.GuardarComo("subido.bin", Server.MapPath(".")) 'Abrimos una conexión a una base de datos Dim oConn, rs, SQL set oConn = Server.CreateObject("ADODB.Connection") set rs = Server.CreateObject("ADODB.Recordset") 'Nos conectamos con un DSN oConn.Open "DSN=Pruebas" 'Y abrimos la tabla Datos SQL = "SELECT * FROM Datos" 'Abrimos el Recordset con cerrojo 2 (adLockPessimiestic) 'que permite modificaciones rs.Open SQL, oConn, 0, 2 'Añadimos un nuevo registro rs.AddNew rs.Fields("nombre") = objUpload.Form("nombreusuario") rs.Fields("edad") = objUpload.Form("edad") 'Guardamos el contenido del fichero en la base de datos: 'el nombre del fichero, su tipo rs.Fields("nombrefichero") = objFich.Nombre rs.Fields("contenido") = objFich.TipoContenido 'y los datos binarios objFich.GuardarBD rs.Fields("datos") rs.Update rs.Close Response.Write("Fichero guardado en base de datos.") 'Limpiamos objetos set oFich = nothing set objUpload = nothing rs.Close set rs = nothing oConn.Close set oConn = nothing %> IV. OBSERVACIONES VBScript no ofrece mecanismos nativos para trabajar de forma eficiente con datos binarios, por lo que xelUpload puede ofrecer un rendimiento inferior al proporcionado por un componente compilado equivalente. No se ha comprobado un límite en el tamaño del fichero que puede manejar xelUpload. Mis pruebas han sido, como máximo, con ficheros de hasta 6,5 Mb. La gran ventaja de xelUpload es que permite incluir funcionalidades de envío de ficheros al servidor, sin necesidad de registrar ningún tipo de componente, lo que lo hace útil en multitud de escenarios. V. PREGUNTAS, DUDAS, PROBLEMAS 1) La propiedad Form o la colección Ficheros no funcionan. 2) ¿Qué tipo pongo a un campo de una tabla para poder guardar un fichero en la base de datos? 3) No puedo guardar el fichero en disco, recibo errores o no ocurre nada. -------------------------------------------------------------- 1) Antes de intentar acceder a obj.Form o obj.Ficheros (donde obj es el nombre de la variable que guarda la instancia de xelUpload) es IMPRESCINDIBLE llamar el método Upload() para comenzar el proceso. <% ... obj.Upload() Response.Write(obj.Ficheros.Count & " ficheros enviados.") ... %> 2) En Microsoft Access, tipo Objeto OLE, que puede guardar tanto datos binarios. En Microsoft SQL Server, tipo binary. 3) El objeto xelUpload no comprueba en forma alguna los permisos del directorio a la hora de Guardar o GuardarComo, así que asegúrate de que el directorio que escoges tiene permisos de escritura para el usuario (en el caso de un sitio Web público, es la cuenta IUSR_maquina). ***************************************************** (C) Carlos de la Orden Dijs
http://www.aspfacil.com Maneja ficheros subidos al servidor mediante código ASP ******************************************** Este documento describe la clase de VBS xelUpload Ultima modificación: 6 Septiembre 2001 ******************************************** INDICE I. XELUPLOAD II. PROPIEDADES Y METODOS III. EJEMPLOS IV. OBSERVACIONES V. PREGUNTAS MAS FRECUENTES ******************************************** I. XELUPLOAD xelUpload es una solución para recibir controles de tipo FILE desde ASP, y su único requerimiento es que la versión del motor de script sea la 5.0 o superior, a partir de la cual se pueden utilizar clases en VBScript. El formulario HTML que envía el fichero (o los ficheros) debe incluir el atributo ENCTYPE con el valor "multipart/form-data", así:
5-6 Septiembre 2001 *****************************************************
Puedes redistribuir este fichero donde quieras y utilizarlo como quieras, siempre y cuando se mantengan los créditos originales y siempre y cuando no se publique como propio en ningún medio electrónico o escrito. No es mucho pedir ¿no? ;-)
¿Comentarios, quejas, felicitaciones?
contacto@aspfacil.com *****************************************************







