Foros del Web » Programando para Internet » PHP »

¿Gestor de Descargas PHP-MySQL?

Estas en el tema de ¿Gestor de Descargas PHP-MySQL? en el foro de PHP en Foros del Web. Hola a todos, estoy haciendo una página web con PHP y MySQL, los requisitos del solicitante son: Acceso a panel de administración exclusivo para administrador ...
  #1 (permalink)  
Antiguo 30/12/2011, 19:30
 
Fecha de Ingreso: diciembre-2011
Ubicación: Corrientes
Mensajes: 12
Antigüedad: 12 años, 3 meses
Puntos: 1
Pregunta ¿Gestor de Descargas PHP-MySQL?

Hola a todos, estoy haciendo una página web con PHP y MySQL, los requisitos del solicitante son: Acceso a panel de administración exclusivo para administrador (creación de usuarios, modificación de noticias, etc.). Acceso a los usuarios (sesiones) a ciertos contenidos como utilidades, foros, etc.

Los requisitos mencionados fueron realizados y se encuentran funcionando pero, un requisito muy específico me tiene estancado, dicho requisito es que los usuarios puedan descargar un solo archivo sin importar tamaño ni extensión cada 24Hs. Esto tampoco sería problemas, con la base de datos se soluciona registrando IDs, fechas, etc., pero además de esto (El problema real) solicitan que, si el usuario comenzó una descarga y por X motivo no finalizo, que dicha descarga no sea registrada dándole al usuario otra oportunidad para realizar su descarga diaria.

Quisiera saber de que modo puedo lograr registrar si las descargas se realizaron correctamente o no, si alguien conoce de ejemplos para esta implementación y pueda darme una mano. Si no conocen o no saben de códigos que puedan lograr esto, por lo menos díganme algún manera aunque sea métodos de programación en otros lenguajes, de algún modo adaptare o hare lo posible para satisfacer este requisito especifico.

Desde ya muchas gracias!!!
  #2 (permalink)  
Antiguo 30/12/2011, 20:35
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: ¿Gestor de Descargas PHP-MySQL?

Con Flash o alguna otra herramienta sí puedes controlar la subida de archivos, pero, por cuestiones de seguridad (y sentido común), los navegadores no tienen acceso a archivos en el equipo del cliente, excepto para guardar, y no hay manera de saber si lo descargado se guardó correctamente para enviar esa información al servidor.

Tal vez podrías poner un límite de tiempo, digamos media hora, para que el usuario pueda descargar nuevamente en caso de error.
__________________
- León, Guanajuato
- GV-Foto
  #3 (permalink)  
Antiguo 30/12/2011, 21:13
Avatar de ocesitaro  
Fecha de Ingreso: diciembre-2011
Ubicación: Carabayllo
Mensajes: 274
Antigüedad: 12 años, 4 meses
Puntos: 36
Respuesta: ¿Gestor de Descargas PHP-MySQL?

en mi particular yo uso un plugn de jquery el plugin se llama Uploadify revisa toda su documentacion, claro que utiliza flash para subir archivos, el problema es que crea sus propias sessiones.
  #4 (permalink)  
Antiguo 30/12/2011, 21:57
 
Fecha de Ingreso: diciembre-2011
Ubicación: Corrientes
Mensajes: 12
Antigüedad: 12 años, 3 meses
Puntos: 1
Respuesta: ¿Gestor de Descargas PHP-MySQL?

Cita:
Iniciado por Triby Ver Mensaje
Con Flash o alguna otra herramienta sí puedes controlar la subida de archivos, pero, por cuestiones de seguridad (y sentido común), los navegadores no tienen acceso a archivos en el equipo del cliente, excepto para guardar, y no hay manera de saber si lo descargado se guardó correctamente para enviar esa información al servidor.

Tal vez podrías poner un límite de tiempo, digamos media hora, para que el usuario pueda descargar nuevamente en caso de error.
Hola, muchisimas gracias por contestar, talvez me exprese mal. el planteamiento es asi: el administrador es el unico que puede subir los archivos por ejemplo "juegos.rar", los usuarios lo unico que pueden hacer es descargarlo y si descargaron el archivo sea cual sea, pueden descargar el mismo u otro despues de 24Hs, eso esta solucionado, el tema es que el usuario va a descargar el archivo a su PC como lo hacemos normalmente de rapidshare por ejemplo, ahora, supongamos que a mitad de la descarga la conexion se corta, el problema viene que en el servidor especificamente en la base de datos mysql ya quedo registrado que se descarga tal archivo por tal usuario y lamentablemente ese usuario va a tener que esperar 24Hs para volver a descargar el archivo que no finalizo u otro archivo que quiera descargar.
Mil disculpas si lo que explique se interpreto de otra manera.
  #5 (permalink)  
Antiguo 30/12/2011, 22:10
 
Fecha de Ingreso: diciembre-2011
Ubicación: Corrientes
Mensajes: 12
Antigüedad: 12 años, 3 meses
Puntos: 1
Respuesta: ¿Gestor de Descargas PHP-MySQL?

Cita:
Iniciado por s3t3r Ver Mensaje
Hola a todos, estoy haciendo una página web con PHP y MySQL, los requisitos del solicitante son: Acceso a panel de administración exclusivo para administrador (creación de usuarios, modificación de noticias, etc.). Acceso a los usuarios (sesiones) a ciertos contenidos como utilidades, foros, etc.

Los requisitos mencionados fueron realizados y se encuentran funcionando pero, un requisito muy específico me tiene estancado, dicho requisito es que los usuarios puedan descargar un solo archivo sin importar tamaño ni extensión cada 24Hs. Esto tampoco sería problemas, con la base de datos se soluciona registrando IDs, fechas, etc., pero además de esto (El problema real) solicitan que, si el usuario comenzó una descarga y por X motivo no finalizo, que dicha descarga no sea registrada dándole al usuario otra oportunidad para realizar su descarga diaria.

Quisiera saber de que modo puedo lograr registrar si las descargas se realizaron correctamente o no, si alguien conoce de ejemplos para esta implementación y pueda darme una mano. Si no conocen o no saben de códigos que puedan lograr esto, por lo menos díganme algún manera aunque sea métodos de programación en otros lenguajes, de algún modo adaptare o hare lo posible para satisfacer este requisito especifico.

Desde ya muchas gracias!!!
A parte de este inconveniente que se me presenta, comparto con ustedes algunos codigos que talvez les sean de utilidad.

Los siguientes codigos estan comprobados en un servidor WAMP.

Con el siguiente codigo se logra enmascarar de algun modo la URL real del archivo a descargar. (No es infalible pero es un cierto grado de seguridad). Las variables que modificaremos son $archivo y $carpeta.

Código PHP:
<?php
$archivo 
"imagen.jpg";
$carpeta "images/";
header("content-disposition: attachment; filename=" $archivo);
header("content-type: application/octet-stream");
header("content-length: " filesize($carpeta $archivo));
header("pragma: no-cache");
header("expires: 0");
$lectura fopen($carpeta $archivo,"r");
echo 
fread($lectura,filesize($carpeta $archivo));
fclose($lectura);
exit();
?>
el siguiente codigo es para impedir que se realizen pedidos externos, tales como descargas, robot de buscadores (spider o crawler),etc. hacia nuestro dominio/servidor. Esto nos da la seguridad de que solo nuestra pagina sea la que solicite los archivos en nuestro servidor.

Esto codigo lo tenemos que guardar en un archivo llamdo .htaccess dentro de la carpeta donde queremos proteger nuestro archivos, a su vez, hay que habilitar en el archivo httpd.conf el modulo rewrite quitando el simbolo de comentario (#) de la siguiente linea:

LoadModule rewrite_module modules/mod_rewrite.so

Código PHP:
RewriteEngine on
RewriteCond 
%{HTTP_REFERER} !http://tudominio.com/ [NC]
RewriteRule .(gif|jpg)$ http://tudominio.com/denegado.gif [R,L] 
  #6 (permalink)  
Antiguo 31/12/2011, 00:08
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: ¿Gestor de Descargas PHP-MySQL?

Cita:
Iniciado por s3t3r Ver Mensaje
Hola, muchisimas gracias por contestar, talvez me exprese mal.
Yo creo que te expresaste bien desde que iniciaste el tema, pero sólo leiste la primera parte de lo que escribí.

Tachado lo que supongo que leiste y, el resto normal:

Cita:
Iniciado por Triby
Con Flash o alguna otra herramienta sí puedes controlar la subida de archivos, pero, por cuestiones de seguridad (y sentido común), los navegadores no tienen acceso a archivos en el equipo del cliente, excepto para guardar, y no hay manera de saber si lo descargado se guardó correctamente para enviar esa información al servidor.

Tal vez podrías poner un límite de tiempo, digamos media hora, para que el usuario pueda descargar nuevamente en caso de error.
__________________
- León, Guanajuato
- GV-Foto
  #7 (permalink)  
Antiguo 31/12/2011, 11:16
 
Fecha de Ingreso: diciembre-2011
Ubicación: Corrientes
Mensajes: 12
Antigüedad: 12 años, 3 meses
Puntos: 1
Respuesta: ¿Gestor de Descargas PHP-MySQL?

Cita:
Iniciado por Triby Ver Mensaje
Yo creo que te expresaste bien desde que iniciaste el tema, pero sólo leiste la primera parte de lo que escribí.

Tachado lo que supongo que leiste y, el resto normal:
Hola Triby, nuevamente gracias por responder, comprendo la parte que dices que el navegador no tiene acceso a los archivos del cliente para comprobar las descargas.

Yo pienso que de alguna manera se tendria que poder debido a que es el servidor el que permite o no que el cliente descargue un archivo, poniendo de ejemplo un servidor FTP, en el caso del FTP si revisas los logs notaras mensajes como Transferencia Realizada, se Cancelo la Transferencia, Error de Conexión, etc.

Pienso, no estoy seguro que sea asi, que al solicitar un archivo a un servidor se inicia una sesion de transferencia, el cliente pide un archivo, el servidor se lo envia por partes debido al modelo de protocolo TCP/IP, supongamos un archivo de 1MB el servidor lo envia en 100 partes, al llegar a la ultima parte, el servidor ya no envia mas nada y en el mensaje le dice al cliente Esta es la ultima parte aqui cerramos la sesion de transferencia (mensaje de tres vías TCP), sino no se le informa al cliente que X parte es la ultima el cliente nunca cerraria el archivo o lo cerraria erroneamente, aun siendo enviado por UDP, si el cliente no recibe la ultima parte o la parte que le falta vuelve a solicitar, sino hay respuesta en X tiempo da como perdida la conexion.

Talvez exista algun script o modificacion en el servidor que registre la finalizacion del envio del archivo.

Talvez algun modulo de apache permita registrar los mensajes de transferencia, tales como envio correcto, fallo de envio, envio cancelado, etc.

Etiquetas: descargas, mysql, usuarios
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 02:00.