Foros del Web » Programando para Internet » Javascript »

Script para descargar archivos con contraseña

Estas en el tema de Script para descargar archivos con contraseña en el foro de Javascript en Foros del Web. Buenos día a todos: Me encuentro en el desarrollo de un sitio (realizado diseño en html5 en plantilla Bootstrap), tengo que incluir 15 archivos de ...
  #1 (permalink)  
Antiguo 13/02/2021, 07:25
 
Fecha de Ingreso: julio-2014
Ubicación: Donde me lleve el tiempo
Mensajes: 42
Antigüedad: 6 años, 10 meses
Puntos: 0
Script para descargar archivos con contraseña

Buenos día a todos:
Me encuentro en el desarrollo de un sitio (realizado diseño en html5 en plantilla Bootstrap), tengo que incluir 15 archivos de vídeos (sobre jugadas de ajedrez) que mediante un botón de PayPal se podrán descargar y/o visualizar previo pago.
Como ocultar la carpeta de los archivos en el servidor para que solamente se acceda mediante un pass generado automáticamente, tanto si lo compra con el método PayPal como si lo hace mediante un formulario de transferencia bancaria. Son las dos opciones que se pueden ofrecer.
Se que existen alternativas como "software de tiendas y demás" pero no es mi interés, por este momento.
Gracias por leer este tema y prestarle atención.
Saludos cordiales
Jdel
  #2 (permalink)  
Antiguo 15/02/2021, 14:03
 
Fecha de Ingreso: abril-2006
Mensajes: 583
Antigüedad: 15 años
Puntos: 120
Respuesta: Script para descargar archivos con contraseña

Cita:
Iniciado por jdelrosario Ver Mensaje
Buenos día a todos:
Me encuentro en el desarrollo de un sitio (realizado diseño en html5 en plantilla Bootstrap), tengo que incluir 15 archivos de vídeos (sobre jugadas de ajedrez) que mediante un botón de PayPal se podrán descargar y/o visualizar previo pago.
Como ocultar la carpeta de los archivos en el servidor para que solamente se acceda mediante un pass generado automáticamente, tanto si lo compra con el método PayPal como si lo hace mediante un formulario de transferencia bancaria. Son las dos opciones que se pueden ofrecer.
Se que existen alternativas como "software de tiendas y demás" pero no es mi interés, por este momento.
Gracias por leer este tema y prestarle atención.
Saludos cordiales
Jdel
lo que necesitas es un "GATEWAY" de descarga pero eso iria en lenguajes de programacion del lado del servidor, NODEJS o PHP

por ejemplo en lugar de

Código:
http://ajedrez.com/videos/video1.mp4
seria

Código:
http://ajedrez.com/index.php?id_pago=xxxxx&video=video1.mp4
y tu carpeta "videos" no deberia de poder accederse por el APACHE o por el navegador web,
__________________
Mis aportes te ayudaron??, te hicieron ahorrar valiosos tiempo??, si quieres puedes agradecerme con un Gracias o con una donacion
https://paypal.com/pools/c/8lmNLmWnG9
  #3 (permalink)  
Antiguo 20/02/2021, 07:07
 
Fecha de Ingreso: julio-2014
Ubicación: Donde me lleve el tiempo
Mensajes: 42
Antigüedad: 6 años, 10 meses
Puntos: 0
Respuesta: Script para descargar archivos con contraseña

Siguiendo con el tema, he encontrado este código php, el cual una vez subido al servidor y ejecutar el link de descarga, produce la descarga pero al acceder a dicho archivo me dice que el archivo está corrupto y no lo abre.
<?php
// Permite la descarga de un archivo ocultando su ruta

$nombre = "03-full.zip";
$filename = "carpeta_x/03-full.zip";
$size = filesize($filename);
header("Content-Transfer-Encoding: binary");
header("Content-type: application/force-download");
header("Content-Disposition: attachment; filename=$nombre");
header("Content-Length: $size");
readfile("$filename");
?>
Sin embargo voy directamente a dicho archivo lo ejecuto y se descomprime perfectamente.
Alguna mente brillante que me ayude?
Muchas gracias y cordiales saludos
  #4 (permalink)  
Antiguo 20/02/2021, 07:16
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.141
Antigüedad: 17 años
Puntos: 831
Respuesta: Script para descargar archivos con contraseña

No tiene nada que ver con tu pregunta inicial, que no tiene una solución correcta en javascript del lado del cliente. Pero si el archivo es .zip no hace falta que hagas eso, basta con un simple link al zip: <a href="ruta-del-arcivo.zip">Descargar</a> Para otro tipo de archivo puedes usar el atributo download de los enlaces (https://www.w3schools.com/tags/att_download.asp), e incluso generar descargas automáticas si lo combinas con el método click() (https://developer.mozilla.org/en-US/...LElement/click).
Por cierto, para usar php, debes señalar el content-type:
Código PHP:


<?php
    
// or however you get the path
    
$yourfile "/path/to/some_file.zip";

    
$file_name basename($yourfile);

    
header("Content-Type: application/zip");
    
header("Content-Disposition: attachment; filename=$file_name");
    
header("Content-Length: " filesize($yourfile));

    
readfile($yourfile);
    exit;
?>

Última edición por Panino5001; 20/02/2021 a las 07:37
  #5 (permalink)  
Antiguo 20/02/2021, 08:13
 
Fecha de Ingreso: julio-2014
Ubicación: Donde me lleve el tiempo
Mensajes: 42
Antigüedad: 6 años, 10 meses
Puntos: 0
Respuesta: Script para descargar archivos con contraseña

Mu agradecido por la respuesta, he probado el código:
<?php
// or however you get the path
$yourfile = "/carpeta_x/03-full.zip";

$file_name = basename($yourfile);

header("Content-Type: application/zip");
header("Content-Disposition: attachment; filename=$file_name");
header("Content-Length: " . filesize($yourfile));

readfile($yourfile);
exit;
?>

Lo baja correctamente pero sigue apareciendo la leyenda que no se puede abrir porque está el archivo corrupto.
JdelR
  #6 (permalink)  
Antiguo 23/02/2021, 12:37
 
Fecha de Ingreso: abril-2006
Mensajes: 583
Antigüedad: 15 años
Puntos: 120
Respuesta: Script para descargar archivos con contraseña

creo que el content-type deberia ser

application/octet-stream

y no
application/zip
__________________
Mis aportes te ayudaron??, te hicieron ahorrar valiosos tiempo??, si quieres puedes agradecerme con un Gracias o con una donacion
https://paypal.com/pools/c/8lmNLmWnG9



La zona horaria es GMT -6. Ahora son las 01:20.