Está usted en Indice > Construcción > Lenguajes > ASP > Lecciones y Paso a Paso > Gestión de Descarga de Archivos con ASP
Construcción
Maletín
Utilidades
Cursos
Promoción
Rentabilidad
Zona Novatos
Foros
Acceso a tu cuenta

Gestión de Descarga de Archivos con ASP (2)

En ella, debemos hacer que como url de descarga, figure otra página ASP, que será la que verifique las cookies que crearemos en muestra_archivos.asp y redireccione automáticamente al archivo. Esta página que comprobará dichos valores, la llamaremos comprueba.asp.

Entonces, volviendo a muestra_archivos.asp colocaremos el enlace de descarga de "50 martillazos de Claudia Puyó", de esta forma:

<a href="comprueba.asp?id=12">

donde 12 será el ID correspondiente al archivo. Por ejemplo <%=RS("id")%>

Nos quedará algo como esto:

50 Martillazos (Claudia Puyó) Bajar

Desert Song (Def Leppard) Bajar



Bien. El segundo paso entonces, será crear una cookie en la página muestra_archivos.asp. Una forma sencilla de hacerlo (aunque como dije al principio, puede descubrirse con un poco de astucia), puede ser esta:

Creamos una cookie con un valor absoluto:

<% response.cookies("Nombre_de_la_cookie")="valor de la cookie" %>

<% response.cookies("Nombre_de_la_cookie").Expires=Date+1 %>

Donde Nombre_de_la_cookie será ArchKar y valor autorizado. El código entonces quedará así:

<% response.cookies("ArchKar")="autorizado" %>

<% response.cookies("ArchKar").Expires=Date+1 %>

Nótese que este código debe ir al comienzo de la página muestra_archivos.asp.

Esto, provocará que si el usuario ingresa a nuestra página muestra_archivos.asp se le creará esta cookie. Pero, si jamás ingresa, obviamente, la cookie no se creará.

Pasemos entonces a la página de descarga del archivo, comprueba.asp.

Esta página tendrá como primer función, comprobar si la cookie ArchKar existe y si su valor es autorizado.

<% ArchKar = request.cookies("ArchKar")

if ArchKar = "autorizado" then

ArchKar = true

end if

%>

Este código nos está diciendo que si ArchKar tiene como valor autorizado, ArchKar será igual a true (verdadero).

El siguiente paso, será establecer que sucede si ArchKar es distinto a true. Es decir, si ArchKar no tiene valor "autorizado" o su valor es nulo o directamente no existe.

<%

if ArchKar true then

response.redirect "error.htm"

%>

Si ArchKar es distinto que true, enviar al usuario a la página error.htm (esta página puede contener un mensaje del tipo "El archivo no puede ser descargado desde un servidor externo").

Ahora solo bastará indicar que hacer si el valor de ArchKar es igual a true. Lo que haremos, será descargar el archivo automáticamente.

<%

else

idkar = request.querystring("id")

'abrimos la base de datos y creamos el recordset y hacemos la consulta

sqltxt="select * from kar where id="&idkar
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open("DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("archivos.mdb"))

set rs=createobject("ADODB.Recordset")

rs.open sqltxt,conn

url = rs("url")

response.redirect url

rs.close

end if

%>

Entonces, si ArchKar no es distinto a true (es decir, que es igual a true), redireccionamos al usuario hacia el archivo en cuestión.



Síntesis del proyecto:

1.

Base de datos
1.

Tabla: kar
2.

Campos requeridos
*

id autonumérico (clave única)
*

url texto > ruta completa de la descarga del archivo
3.

Campos adicionales: serán los referentes a las distintas características del archivo y variarán según las necesidades de cada caso.


2.

mostrar_archivos.asp



Usuarios que han visto este tema también han visto...

- Comunicación entre ASP y Flash
- Acceder a un fichero ubicado en el servidor con ASP.NET
- Ejemplos básicos de ASP
- Cortar Cadenas
- Consulta de registro de dominios con ASP


Versión imprimible - Versión imprimible de este documento
Enviar e-mail - Enviar por e-mail este documento
Publicidad

Información legal | Política de Privacidad | Contacte con nosotros

Otro proyecto de Factoría de Internet. Copyright© 2003-2008 Factoría de Internet S.L.. Todos los derechos reservados.


Página generada el 23-11-2008 a las 21:35:04