link temporar o virtual de descarga

Iniciado por clandestino41, 5 Junio 2013, 06:45 AM

0 Miembros y 1 Visitante están viendo este tema.

clandestino41

Buenas soy nuevo en el foro, disculpen las preguntas absurdas
no sé si pudiera llamar el tema asi pero fue la forma más útil de llamarlo

Bueno lo q necesito es que en mi sitio web tengo varios archivos para descargar
pero yo si me se la ruta de los archivos por ejemplo
http://192.168.1.20/archive/dato.rar

Hasta ahí todo bien tengo un botón q cuando le doy me manda a descargar el fichero
pero q quiero en los navegadores o en el acelerador de descarga me pone la ruta del fichero como es lógico, pero lo que quiero es q cuando le des en el botón me mande a descargar el fichero pero que no de la ruta real del fichero, como pasa con algunos sitios q te crean un link temporal del archivo a bajar, por ejemplo
http://descargas.com/ajhq2e00000a8sdn 90890/video.mp4
Esa es mas o meno mi duda, la idea es que si se muestra la ruta real del fichero
Cualquiera puede poner el link en el acelerador de descarga y comenzar la descarga
y lo q quiero es q la descarguen pero despues de poner un password .
Espero me puedan ayudar gracias...

& eDu &

Explicate mejor macho.. concretamente lo de la password.

WHK

#2
Para hacer eso necesitas apache y mod rewrite, donde todas las urls viajen directamente hacia index.php y este php sea el encargado de obtener el hash del archivo y solicitar las credenciales necesarias, etc.

Luego el mismo php debiera ser el encargado de dar el archivo utilizando fopen enviando strings en bloques de 2kb para prevenir el uso excesivo de memoria.

Recuerda establecer que el tiempo de demora de la ejecución de php sea infinito para que la persona pueda descargar archivos grandes correctamente.

El usuario final jamas debería ver la url del archivo original, de hecho el archivo original debiera estar en un directorio rpotegido con acceso denegado a todos utilizando deny for all desde un htaccess.

Imagina 10 personas descargando al mismo tiempo un archivo, si haces copias tendras 10 archivos duplicados, en ves de eso tendras 10 procesos de php entregando el archivo sin la necesidad de depender del espacio de tu disco y asecinar el plato con tanto IO de lectura y escritura.

Saludos.

Fercho_2023

Cita de: WHK en  6 Junio 2013, 16:33 PM
Para hacer eso necesitas apache y mod rewrite, donde todas las urls viajen directamente hacia index.php y este php sea el encargado de obtener el hash del archivo y solicitar las credenciales necesarias, etc.

Luego el mismo php debiera ser el encargado de dar el archivo utilizando fopen enviando strings en bloques de 2kb para prevenir el uso excesivo de memoria.

Recuerda establecer que el tiempo de demora de la ejecución de php sea infinito para que la persona pueda descargar archivos grandes correctamente.

El usuario final jamas debería ver la url del archivo original, de hecho el archivo original debiera estar en un directorio rpotegido con acceso denegado a todos utilizando deny for all desde un htaccess.

Buenas, soy un poco novato en esto XD, ¿Podrías poner un ejemplo de esto o explicarlo un poco mas?

Muchas gracias por la información de todas formas.

srWhiteSkull

Eso es complicarse la vida, lo mejor es que generes un parámetro tipo token, que registras en el acto en la BD antes de enviarlo y asocias el recurso.

Ejemplo:

Al pinchar en el enlace -> http:\\mipagina.com\descarga?skdh123wskfjsf123

y previamente lo registras en la base de datos acompañado con un date time, para que cuando pase un tiempo deje de tener validez (por ejemplo). Luego haces la consulta tomando el parámetro y lanzas el resultado...