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 de este documento
- Enviar por e-mail este documento