Usando el componente de la empresa Dimac (puede descargar una versión de evaluación desde tech.dimac.net) construiremos una solución para permitir a sus visitantes realizar upload de sus archivos sin necesidad de utilizar FTP, ni escribir extensos códigos en ASP.
El componente W3 Upload, nos permite controlar que tipos de archivos pueden subirse, de que tamaño, en que carpeta guardarlos y opciones más avanzadas como guardar archivos en bases de datos.
Desarrollaremos un ejemplo con dos páginas, un formulario para seleccionar el archivo, formulario.htm y una página asp que realizará el proceso de upload, upload.asp
Formulario
Creamos un formulario con los siguientes campos:
Carpeta: Es la carpeta de trabajo del usuario, donde se guardaran los archivos
Mensaje: además de enviar el archivo, el usuario podrá enviar un mensaje que guardaremos en un archivo de texto.
Archivo: desde aquí el usuario seleccionará el archivo a enviar.
Código del formulario
<form method="POST" action="upload.asp" enctype="multipart/form-data">
Carpeta : <input type="text" name="carpeta" size="20" maxlength="20"><p>
Mensaje : <textarea rows="3" name="mensaje" cols="34"></textarea><p>
Archivo : <input type="file" name="archivo"><p>
<input type="submit" value="Enviar" name="Btnsubmit">
</form>
Quizás haya algunos elementos de este formulario que sean nuevos para Ud. Por un lado, debe indicar el tipo de codificación del formulario como "multipart/form_data", lo que habilitará el envío de un archivo. En segundo lugar, aparece un campo de formulario de tipo "file", el cual mostrará un cuadro de texto y un botón "examinar".
Upload.asp
En el server deberemos tener una carpeta con los permisos correspondientes. Por ejemplo c:uploads. Dentro de esa carpeta, los usuarios podrán crear sus subcarpetas de trabajo. El archivo adjunto y el mensaje enviado por el usuario se guardaran allí.
Comenzaremos creando una instancia del objeto:
<%
Set upload = Server.CreateObject("W3.Upload")
%>
De ahora en adelante, cuando hagamos referencia a los campos de formulario, lo haremos con el objeto upload y no con response. Esto es muy importante ya que de lo contrario perderemos el archivo enviado.
Verificaremos si existe la carpeta de trabajo, y de no ser así la crearemos. Para esto utilizaremos el objeto FileSystemObject.
<%
Set fsys = CreateObject("Scripting.FileSystemObject")
%>
"Limpiamos" la cadena ingresada por el usuario:
<%
carpeta=upload.form("carpeta")
carpeta=replace(carpeta,"."," ")
carpeta=replace(carpeta,">"," ")
carpeta=replace(carpeta,"<"," ")
carpeta=replace(carpeta,"/"," ")
carpeta=replace(carpeta,""," ")
carpeta=replace(carpeta,":"," ")
carpeta=replace(carpeta,"?"," ")
carpeta=replace(carpeta,"*"," ")
carpeta=replace(carpeta,chr(34)," ")
carpeta=replace(carpeta,"'"," ")
carpeta=trim(carpeta)
%>
Con FolderExists comprobamos si existe una carpeta; para crear una nueva usamos CreateFolder
<%
if not fsys.FolderExists("c:uploads" & carpeta) then
fs.CreateFolder "c:uploads" & carpeta
End if
%>
Ya tenemos la carpeta de trabajo, ahora guardaremos en un archivo de texto el mensaje ingresado por el usuario. El nombre del archivo será del tipo:
mensaje_151100_031108pm.txt (esto es mensaje_fecha_hora)
Usuarios que han visto este tema también han visto...
- Usando el Buffer de la página con ASP
- Contador de visitantes activos en ASP
- Historia de ASP
- Última modificación de un archivo en ASP
Información legal | Política de Privacidad | Contacte con nosotros
Otro proyecto de Factoría de Internet. Copyright© 2003-2011 Factoría de Internet S.L.. Todos los derechos reservados.