Foros del Web » Programando para Internet » PHP »

PHP OO como evitar descargar archivo descargado previamente?

Estas en el tema de como evitar descargar archivo descargado previamente? en el foro de PHP en Foros del Web. Hola Mi problema es que quiero que mi usuario descargue una aplicación para ingresar a los distintos sistemas de mi sitio web. Conseguir hacer que ...
  #1 (permalink)  
Antiguo 19/10/2014, 22:39
 
Fecha de Ingreso: agosto-2007
Ubicación: Osorno, Chile
Mensajes: 40
Antigüedad: 17 años, 2 meses
Puntos: 0
Pregunta como evitar descargar archivo descargado previamente?

Hola
Mi problema es que quiero que mi usuario descargue una aplicación para ingresar a los
distintos sistemas de mi sitio web.
Conseguir hacer que esa aplicación se descargue no me presentó ningún problema lograr.
Pero cuando ingreso de nuevo a ese enlace, entonces vuelve a descargar el mismo archivo nuevamente, re-nombrando con un numero cada vez.
Eso significa que mi cliente va a llenar su disco duro con descargas de la misma aplicación eternamente.
Entonces estoy intentando hacer que el programa de descarga lea el disco duro para saber si ya fue descargado previamente y caso no lo encuentre, proceda a descargarlo.
Pero aquí se me presenta el problema.
He encontrado como posible solución en PHP las funciones is_file() y la file_exists()
He construido el siguiente código intentando resolverlo, pero no me funciona como esperado.

$file = '\archivo.exe';
$dir = 'c:\Users\admin\Downloads';
$dir1 = 'c:\Usuarios\admin\Descargas';

//intentando primero con la función is_file()
$file_location = $dir.$file;
if (!is_file($file_location)){
echo 'Could not get that file! '.$file_location.'<br>';
} else {
die('Could YES get that file! '.$file_location).'<br>';
}
$file_location1 = $dir1.$file;
if (!is_file($file_location1)){
echo ('Could not1 get that file! '.$file_location1).'<br>';
} else {
die('Could YES1 get that file! '.$file_location1).'<br>';
}

//intentando ahora con la función file_exists()
$file_location = $dir.$file;
if (!file_exists($file_location)){
echo 'Could file_exists not get that file! '.$file_location.'<br>';
} else {
die('Could file_exists YES get that file! '.$file_location).'<br>';
}
$file_location1 = $dir1.$file;
if (!file_exists($file_location1)){
echo ('Could file_exists not1 get that file! '.$file_location1).'<br>';
} else {
die('Could file_exists YES1 get that file! '.$file_location1).'<br>';
}

//aqui la rutina de descarga porque no lo encuentra, es su primera vez.

El hecho es que ninguna de esas dos rutinas logra el objetivo de detener la ejecución porque el archivo si existe en el disco duro. Y yo sé que si existe en esa carpeta.
Intenté usando el path del archivo tanto en español como en inglés, pero no funciona.
También intenté colocando la unidad como c: y como C: y nada. No lo encuentra.

Podría alguien por favor darme una ayuda para resolver mi problema?
Muchas gracias!
  #2 (permalink)  
Antiguo 19/10/2014, 23:52
Avatar de ArturoGallegos
Moderador
 
Fecha de Ingreso: febrero-2008
Ubicación: Morelia, México
Mensajes: 6.774
Antigüedad: 16 años, 8 meses
Puntos: 1146
Respuesta: como evitar descargar archivo descargado previamente?

El problema es que php se ejecuta del lado del servidor, es decir las funciones que indicas son para comprobar si determinado archivo existe en tu servidor.

Lamentablemente existen pocas por no decir nulas posibilidades de que puedas examinar el disco duro del visitante con el navegador, se que antiguamente existían algunas propiedades de Internet explorer pero no se si aun funcionen y cuales sean.

Que tipo de archivo descarga? como funciona tu aplicación?

Yo diría que lo que hay que modificar es la forma en que funciona tu aplicación, pero sin saber que tipo de archivo es y como funciona hay poco que se te pueda recomendar.
  #3 (permalink)  
Antiguo 20/10/2014, 07:01
 
Fecha de Ingreso: agosto-2007
Ubicación: Osorno, Chile
Mensajes: 40
Antigüedad: 17 años, 2 meses
Puntos: 0
De acuerdo Respuesta: como evitar descargar archivo descargado previamente?

Gracias por tu respuesta, Arturo
Entonces, si el PHP se ejecuta del lado del servidor, tal vez no sea el lenguage adecuado para una función de ese tipo, pero tal vez exista en PHP forma de llamar a esa función en otro idioma, que lea el disco duro del visitante y revise si acaso ya existe el archivo.

El tipo de archivo que se descarga al computador del visitante es un ejecutable.exe
Este ejecutable es una aplicación que tiene por objeto direccionar a los diferentes sistemas computacionales que tengo alojados en mi sitio web, aplicaciones administrativas, tales como contabilidad, remuneraciones, compra-ventas, recibir-pagar, manejo de escuela, correo privado, manejo hotelero, etc.

Entonces mi aplicación actúa como un centro de distribución para loguearse a los distintos sistemas, desde una única pieza de software que se descarga en el computador del cliente de cualquiera de los sistemas.

De ese modo, todos mis clientes tendrían esa aplicación en su Escritorio, para acceder a cualquier sistema de mi sitio web.

Agradezco mucho tu colaboración en ayudar a resolver el problema de descargas duplicadas de un archivo ya existente en el disco duro del visitante.
  #4 (permalink)  
Antiguo 20/10/2014, 09:53
Avatar de ArturoGallegos
Moderador
 
Fecha de Ingreso: febrero-2008
Ubicación: Morelia, México
Mensajes: 6.774
Antigüedad: 16 años, 8 meses
Puntos: 1146
Respuesta: como evitar descargar archivo descargado previamente?

Lamentablemente No es posible interaccionar con la computadora del cliente, ya que se considera intrusivo, agresivo y de muy alto riesgo... como te comente antiguamente existía la posibilidad en explorer sin embargo se presto a malos usos... y hasta donde se ya no es posible hacer eso hoy día.

Quizás usando navegadores viejos pero dudo que sea una alternativa....

Ahora bien, supongo que tu aplicación es una especie de navegador que utiliza algún motor como firefox, explorer u otro, en cuyo caso lo que podrías hacer es crear una API para que tu aplicación interaccione con tu sistema en lugar de usar el navegador como intermediario.... o en ultima instancia, haz que en la consulta que hace tu aplicación incluya una variable, ya sea post o get.

algo como dominio.com?cliente=x&installed=true

y en tu sitio con PHP esa variable la lees, si no existe o es distinta al valor esperado, haces que se descargue el archivo, caso contrario se considera instalada la aplicación y continua con sus procesos.
  #5 (permalink)  
Antiguo 20/10/2014, 10:30
 
Fecha de Ingreso: agosto-2007
Ubicación: Osorno, Chile
Mensajes: 40
Antigüedad: 17 años, 2 meses
Puntos: 0
Respuesta: como evitar descargar archivo descargado previamente?

Muchas gracias, Arturo
Ya me has dado la idea correcta de como resolver el problema.
Te agradezco enormemente tu tiempo y dedicación y felicitaciones por ayudar!
Un fuerte abrazo
Luis Galdames

Etiquetas: disk, download, duplicada, duplicate
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 10:31.