Escrito por Mauro Rondinelli el Jueves 20 de Mayo de 2004 a las 00:00hs
Este articulo explica como por medio del componente SAFileUp podemos realizar uploads de archivos al servidor de una manera sencilla.
Existen gran cantidad de componentes para realizar uploads, entre los mas populares encontramos a: ASPUpload, DynuUpload y SAFileUp de SoftArtisans, en este caso nos ocuparemos de este ultimo por que junto a ASPUpload es uno de los mas populares.
Obviamente para poder utilizar el componente lo debemos tener instalado en nuestra PC y en el servidor donde alojemos nuestra pagina web, en el sitio web de SoftArtisans podemos descargar una versión del producto.
El Formulario
Lo primero que debemos hacer es crear el formulario por el cual el usuario buscara el archivo a subir, veamos que no es nada complicado...
<form action="upload.asp" method="post" enctype="multipart/form-data" name="form1">
<p><input name="archivo" type="file" id="archivo"></p>
<p><input type="submit" name="Submit" value="Enviar"></p>
</form>
Como vemos no es nada complicado este formulario, solo debemos tener en cuenta que el atributo enctype de la etiqueta form debe ser "multipart/form-data" esto le indica al formulario como enviar los datos y como se trata de enviar un archivo esa es la forma que debe utilizarse.
El formulario debe verse mas o menos asi...
Como vemos mas arriba, el formulario debe tener como destino el archivo "upload.asp", para ello establecemos el valor del atributo action a "upload.asp" que es el archivo que realizara el proceso de upload.
El Upload
Bien, ya tenemos el formulario que apunta al archivo ASP que realiza el upload lo único que nos falta es ver el código ASP de dicho archivo...
upload.asp
<%
Dim Upload ' definimos la variable a utilizar
' creamos el objeto SAFileUp para poder subir el archivo
Set Upload = Server.CreateObject("SoftArtisans.FileUp")
' Indicamos la ruta donde queremos que se guarde el archivo
Upload.Path = Server.MapPath("/uploads")
' comprobamos que el formulario no se envíe vacío
if not Upload.IsEmpty Then
' si el formulario no esta vacío, subimos el archivo.
' en ruta establecida anteriormente se guardara el archivo
Upload.Save
'comprobamos que no haya errores
if Err <> 0 Then
Response.Write("Ocurrió un error al intentar subir el archivo.")
else
Response.Write("Se guardo correctamente el archivo: " & Upload.ShortFilename)
end if
else
' si se envía el formulario vacío mostramos este mensaje
Response.Write("Por favor, seleccione un archivo para realizar el upload")
end If
' destruimos el objeto
Set Upload = Nothing
%>
El código esta con comentarios que nos indica la acción que se realiza en cada momento así que creo que no hay mucho que explicar, solo recordemos dar los permisos correspondientes a la carpeta para que se puede realizar el upload.
Hola, saludos a todos
Me gustaría que alguien me pudiera aclarar si en este tipo de uploads se pueden enviar más campos, me explico: por ejemplo añadir un campo "input text" para poder enviar por ejemplo el nombre de quien hace el upload. Mi duda es si hay algun modo de poder recibir tanto el fichero como el dato que va en otro input del mismo formulario.
Enhorabuena por los artículos
Ciertamente es posible, solamente tienes que descargar el contenido de las variables emitidas por el formulario (si es que utilizas el metodo post) o bien las que proceden de la cadena de consulta (si es que utilizas el metodo get). Posteriormente podrás darles el tratamiento que consideres necesario tal como almacenarlas en campos de una base de datos.
Saludos!
Es posible hacer esta subida pero a una base de datos MSSQL? O sea, no a una carpeta que este dentro del servidor sino subir directamente el archivo a la base de datos?
Se que con java se puede.
saludos.