Foros del Web » Programando para Internet » Javascript »

Script para Evitar que un Archivo sea Abierto, sólo Descargado

Estas en el tema de Script para Evitar que un Archivo sea Abierto, sólo Descargado en el foro de Javascript en Foros del Web. Buen día amigos, estoy haciendo una página web en html y javascript y en particular tengo un link para descargar un archivo validado con username ...
  #1 (permalink)  
Antiguo 28/05/2011, 10:34
 
Fecha de Ingreso: marzo-2010
Mensajes: 19
Antigüedad: 14 años
Puntos: 0
Pregunta Script para Evitar que un Archivo sea Abierto, sólo Descargado

Buen día amigos, estoy haciendo una página web en html y javascript y en particular tengo un link para descargar un archivo validado con username y password pero una vez que se introducen los valores correctos el archivo como es pdf se abre directamente en google chrome en tanto que en internet explorer y en mozilla firefox sale la ventanita para elegir entre abrir el archivo o descargarlo.

El caso es que quisiera deshabilitar la opción de que se pueda abrir, es decir, que únicamente se pueda descargar. ¿Por qué? Por que por ejemplo en google chrome si es un archivo pdf se abre y se ve en el browser el link del documento lo cual puede ser fácilmente compartido.

De esta manera evito que cualquier persona pueda descargar estos documentos y que únicamente los que tengan el username y el password lo puedan hacer. Quisiera ser más técnico y experto para lograr esto pero desafortunadamente soy un programador empírico en html y javascript y muy poco en php.

Se me ocurre que otra opción es que cuando se abra el pdf lo haga en una ventana aparte donde no se vea la dirección, no se si se pueda.

Muchas gracias de antemano por toda la ayuda que me puedan prestar.
  #2 (permalink)  
Antiguo 28/05/2011, 11:22
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 15 años, 11 meses
Puntos: 528
Respuesta: Script para Evitar que un Archivo sea Abierto, sólo Descargado

Hay dos opciones: mediante cabeceras de descarga de archivo:

header("Pragma: public");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Cache-Control: private",false);
header("Content-Description: File Transfer");
header("Content-Type: application/force-download");
header("Content-Length: " . filesize ("ruta/archivo.pdf"));
header("Content-Disposition: attachment; filename=ruta/archivo.pdf");
echo file_get_contents("ruta/archivo.pdf");

Esto aún no te asegura que todos los navegadores lo harán la descarga, algunos según su configuración seguirán abriendo el archivo.
Pero en ese caso puedes hacer que una vez que se descargue el archivo borrarlo.

En todo caso esto lo puedes hacer en php sin recurrir a Javascript, por lo tanto sección equivocada.
  #3 (permalink)  
Antiguo 28/05/2011, 12:29
 
Fecha de Ingreso: noviembre-2005
Mensajes: 426
Antigüedad: 18 años, 4 meses
Puntos: 87
Respuesta: Script para Evitar que un Archivo sea Abierto, sólo Descargado

Cita:
El caso es que quisiera deshabilitar la opción de que se pueda abrir, es decir, que únicamente se pueda descargar. ¿Por qué? Por que por ejemplo en google chrome si es un archivo pdf se abre y se ve en el browser el link del documento lo cual puede ser fácilmente compartido.
Falso; es muy facil ver con un gestor de descargas (y con algunos exploradores) el link de descarga. Lo que usted necesita es proteger el archivo solo para usuario registrados; o sea; usando el mismo codigo de ocp001a tiene que colocar algo parecido a esto:

Código PHP:
Ver original
  1. if($logueado){
  2. echo file_get_contents("ruta/archivo.pdf");
  3. }
  #4 (permalink)  
Antiguo 29/05/2011, 10:04
 
Fecha de Ingreso: marzo-2010
Mensajes: 19
Antigüedad: 14 años
Puntos: 0
Respuesta: Script para Evitar que un Archivo sea Abierto, sólo Descargado

Muchas gracias por responder amigos, pero la verdad no entendí muy bien sus sugerencias. Yo manejo prácticamente nada de php y algo de javascript ya que soy un programador empírico que todo lo que se lo he aprendido googleando.

El script que tengo para pedir username y password es el siguiente:


<script language="javascript" type="text/javascript">
function registra(){
var done=0;
alert("Introduzca su usuario y su contraseña")
var username = prompt("Introduzca su usuario", "");
var password = prompt ("Introduzca su contraseña", "")
passcode = 1
usercode = 1
for(i = 0; i < password.length; i++) {
passcode *= password.charCodeAt(i);
}
for(x = 0; x < username.length; x++) {
usercode *= username.charCodeAt(x);
}
if(usercode==44896210329600&&passcode==10553902869 519360) { window.open("documentos/"+"archivo"+".pdf"); done=1; }
if (done==0) { alert("¡Usuario inválido!"); }
}
</script>


Obviamente el que sepa algo de programación y vea el código verá que el archivo a descargar se llama archivo.pdf y se encuentra dentro de la carpeta documentos pero eso sólo lo sabrá si revisa el código fuente lo cual para el público que yo manejo no es algo muy posible.

No obstante, una vez colocado el username y el password al menos en google chrome se despliega el documento archivo.pdf y queda en evidencia el link directo para descargar el archivo el cual puede ser fácilmente compartido con otras personas. Ya probé en mozilla firefox e internet explorer y sólo sale la ventanita para abrir o descargar el documento. Lo que quiero es que en cualquier navegador sólo salga la opción de descargar el archivo, nunca que de la opción de abrirlo. ¿Se puede?

A todos los que manejan php si me pudieran facilitar un código sencillo de logueo con username y password para que sólo puedan descargar documentos quiénes yo mismo registre (no que se registre cada quién) mucho les sabré agradecer que me lo dejen acá.

Última edición por alykkain; 29/05/2011 a las 14:27
  #5 (permalink)  
Antiguo 29/05/2011, 19:16
 
Fecha de Ingreso: marzo-2010
Mensajes: 19
Antigüedad: 14 años
Puntos: 0
Respuesta: Script para Evitar que un Archivo sea Abierto, sólo Descargado

¿Alguna ayuda amigos?
  #6 (permalink)  
Antiguo 29/05/2011, 19:53
 
Fecha de Ingreso: noviembre-2005
Mensajes: 426
Antigüedad: 18 años, 4 meses
Puntos: 87
Respuesta: Script para Evitar que un Archivo sea Abierto, sólo Descargado

No se puede forzar que solo haya la opción de descargar usando solo javascript, tiene que usar PHP u otro lenguaje de servidor. ocp001a mostro un buen ejemplo de como se hace.

Etiquetas: time
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:03.