Foros del Web » Programando para Internet » PHP »

Script de Descarga de archivos al servidor desde una URL

Estas en el tema de Script de Descarga de archivos al servidor desde una URL en el foro de PHP en Foros del Web. Hola, antes de nada, decir que este es mi primer post, pero que no será el ultimo. He estado buscando y no he encontrado nada ...
  #1 (permalink)  
Antiguo 09/05/2011, 14:16
Avatar de baumann  
Fecha de Ingreso: mayo-2011
Ubicación: Madrid
Mensajes: 33
Antigüedad: 13 años, 6 meses
Puntos: 0
Pregunta Script de Descarga de archivos al servidor desde una URL

Hola, antes de nada, decir que este es mi primer post, pero que no será el ultimo. He estado buscando y no he encontrado nada de lo que necesito, aunque he visto cosas interesantes acerca de php.

Bueno, mi problema es el siguiente.

En estas 3 páginas que listo a continuación

- http://www.mapgnome.org/
- http://www.hiveworkshop.com/
- http://www.epicwar.com/

te puedes descargar mapas para jugar en warcraft 3.

EL problema es que quiero automatizar las descargas de dichos mapas al servidor, sin tener que estar descargando el mapa a mano cada vez que un usuario me pide un mapa nuevo.

El actual sistema de subida de mapas solo me permite cargar mapas desde epicwar.com de el siguiente modo:


Quiero implementar un nuevo script en php en el cual el usuario introduzca la URL completa desde donde te podrías descarga el mapa de cualquiera de las 3 webs citadas anteriormente en vez de el codigo del mapa (como dice en la foto) y tras escribir el captcha que el archivo que corresponde a esa URL se descargue en la carpeta que yo le indique.

2 problemas tengo. El actual sistema no lo escribí yo, no se por donde empezar.
Lo único que se me ha ocurrido es detectar de que web es la URL escrita en el formulario. Pero no se como seguir.

Cita:
Ejemplo:

Un usuario quiere este descargar este mapa al servidor:
* http://www.epicwar.com/maps/170942

Tendría que poner la URL -> http://www.epicwar.com/maps/170942/ y el script en caso de pase con éxito el captcha descargaría el mapa en la carpeta indicada (en el servidor)
Espero haberme explicado bien, estaré agradecido cualquier ayuda.
Tengo FP grado superior de Informática, lo digo para que sepáis que tengo un nivel de conocimiento mínimo :D

PD: Cuando estoy en vista previa me funcionan los links a las paginas que indico y pero cuando le doy a guardar cambios dejan de funcionar.

Última edición por baumann; 09/05/2011 a las 14:26
  #2 (permalink)  
Antiguo 10/05/2011, 18:33
Avatar de baumann  
Fecha de Ingreso: mayo-2011
Ubicación: Madrid
Mensajes: 33
Antigüedad: 13 años, 6 meses
Puntos: 0
Respuesta: Script de Descarga de archivos al servidor desde una URL

Cara vez que pienso en alguna solución me atasco y empiezo de nuevo :(
Alguien podría decirme por donde empezar? La cuestión es que lo quiero hacer yo, pero neceisto un primer empujon ;D
  #3 (permalink)  
Antiguo 10/05/2011, 19:11
Avatar de Nemutagk
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: México
Mensajes: 2.633
Antigüedad: 20 años, 7 meses
Puntos: 406
Respuesta: Script de Descarga de archivos al servidor desde una URL

Se me ocurre algo así
Código PHP:
Ver original
  1. $url = $_SERVER['PHP_SELF'];
  2. $partes = explode('/',$url);
  3.  
  4. echo $partes[2];

Estoy suponiendo que el URL va a tener siempre esa estructura

Nota: Esto no tiene nada que ver con POO
__________________
Listo?, tendría que tener 60 puntos menos de IQ para considerarme listo!!!
-- Sheldon Cooper
http://twitter.com/nemutagk
PD: No contestaré temas vía mensaje personal =)
  #4 (permalink)  
Antiguo 10/05/2011, 19:59
Avatar de fekaa11  
Fecha de Ingreso: abril-2011
Ubicación: Córdoba / Argentina
Mensajes: 115
Antigüedad: 13 años, 6 meses
Puntos: 34
Respuesta: Script de Descarga de archivos al servidor desde una URL

Perdón pero no he entendido. Hablas de un captcha, cuando entro a la web: http://www.epicwar.com/maps/170942/ no me aparece definitivamente ningún Captcha. Clickeo donde dice Download map xxxxxx. y me comienza a descargar!

Seguramente entendí mal, si puedes explicarmelo de forma que entienda veré como puedo ayudarte.

Saludos!
__________________
Pedir perdón es de hombres inteligentes. Perdonar es de sabios.
  #5 (permalink)  
Antiguo 11/05/2011, 01:31
Avatar de baumann  
Fecha de Ingreso: mayo-2011
Ubicación: Madrid
Mensajes: 33
Antigüedad: 13 años, 6 meses
Puntos: 0
Respuesta: Script de Descarga de archivos al servidor desde una URL

Cita:
Iniciado por fekaa11 Ver Mensaje
Perdón pero no he entendido. Hablas de un captcha, cuando entro a la web: http://www.epicwar.com/maps/170942/ no me aparece definitivamente ningún Captcha. Clickeo donde dice Download map xxxxxx. y me comienza a descargar!

Seguramente entendí mal, si puedes explicarmelo de forma que entienda veré como puedo ayudarte.

Saludos!
Gracias compañero!

Si, asi es. No hay captcha alguno en epicwar.com/***

El captcha lo quiero integrar yo cuando cree el código ya que cualquier usuario regristrado sería capaz de subir mapas al servidor. Eso me da un poco de seguridad.

En efecto, lo que yo quiero es que cuando alguien ponga la url del mapa este se descargue, comprobando claro que el fichero exista, tenga una extensión determinada, un tamaño máximo, etc , pero eso no es lo principal.

Lo que me pasa es que no se como trabajar para hacer eso, que cuando alguien pegue el link del mapa (ej: http://www.epicwar.com/maps/170942/) se empiece a descargar el mapa.
  #6 (permalink)  
Antiguo 11/05/2011, 01:36
Avatar de baumann  
Fecha de Ingreso: mayo-2011
Ubicación: Madrid
Mensajes: 33
Antigüedad: 13 años, 6 meses
Puntos: 0
Respuesta: Script de Descarga de archivos al servidor desde una URL

Cita:
Iniciado por Nemutagk Ver Mensaje
Se me ocurre algo así
Código PHP:
Ver original
  1. $url = $_SERVER['PHP_SELF'];
  2. $partes = explode('/',$url);
  3.  
  4. echo $partes[2];

Estoy suponiendo que el URL va a tener siempre esa estructura

Nota: Esto no tiene nada que ver con POO
Hola y gracias!

No entiendo muy bien que quieres decirme con eso, pero cuando llegue a casa lo pruebo y ya te comento.

Un saludo!

Respecto a la nota ya se que no tiene nada que ver, pero al seleccionar el titulo para el post me equivoqué.
  #7 (permalink)  
Antiguo 11/05/2011, 02:03
Avatar de s00rk  
Fecha de Ingreso: octubre-2010
Ubicación: Mexico
Mensajes: 238
Antigüedad: 14 años
Puntos: 48
Respuesta: Script de Descarga de archivos al servidor desde una URL

Cita:
Iniciado por Nemutagk Ver Mensaje
Se me ocurre algo así
Código PHP:
Ver original
  1. $url = $_SERVER['PHP_SELF'];
  2. $partes = explode('/',$url);
  3.  
  4. echo $partes[2];

Estoy suponiendo que el URL va a tener siempre esa estructura

Nota: Esto no tiene nada que ver con POO
Pues con eso podria ya hacerse si la estructura es igual siempre, solamente le faltaria checar que tal ID de ese mapa exista y si existe se muestre el captcha para que lo introdusca y ya lo descarga si esta bien y si el mapa no existe se recarga la web o ahi mismo que le salga un mensaje sobre que el mapa no existe y listo.

Eso seria no ?
  #8 (permalink)  
Antiguo 11/05/2011, 04:05
Avatar de baumann  
Fecha de Ingreso: mayo-2011
Ubicación: Madrid
Mensajes: 33
Antigüedad: 13 años, 6 meses
Puntos: 0
Respuesta: Script de Descarga de archivos al servidor desde una URL

Cita:
Iniciado por s00rk Ver Mensaje
Pues con eso podria ya hacerse si la estructura es igual siempre, solamente le faltaria checar que tal ID de ese mapa exista y si existe se muestre el captcha para que lo introdusca y ya lo descarga si esta bien y si el mapa no existe se recarga la web o ahi mismo que le salga un mensaje sobre que el mapa no existe y listo.

Eso seria no ?
Hola.
Si, eso es, como tú dices. Voy a probar como funciona eso que recién llego a casa y os aviso.
  #9 (permalink)  
Antiguo 12/05/2011, 09:48
Avatar de baumann  
Fecha de Ingreso: mayo-2011
Ubicación: Madrid
Mensajes: 33
Antigüedad: 13 años, 6 meses
Puntos: 0
Respuesta: Script de Descarga de archivos al servidor desde una URL

No termino de entender para que usar eso. Lo he probado y ya he visto lo que hace.

De todas formas había planteado hacerlo de la siguiente forma. Antes os había comentado que quería implementar el código de 3 sitios de mapas distintos, yo creo que si consigo hacer el de uno, me servirá de ayuda para los proximos, por lo tanto he pensado que es mejor ir poco a poco, y empezar solo con este sitio: http://www.mapgnome.org/

Sería lo mismo, pero para un solo sitio web (los demas ya los implementaré);

Copiar la direccion url completa (ejemplo: http://www.mapgnome.org/map-info/484841) y tras darle al boton 'subir mapa' (submit) el script busque que mapa corresponde a esa URL y que descargara el mapa en mi servidor de mapas.
  #10 (permalink)  
Antiguo 12/05/2011, 14:30
Avatar de Nemutagk
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: México
Mensajes: 2.633
Antigüedad: 20 años, 7 meses
Puntos: 406
Respuesta: Script de Descarga de archivos al servidor desde una URL

A ver, como si hubieras dicho que estas intentando "descargar" archivos desde paginas externas a tu servidor todo seria diferente, lo que requieres es mucho mas complejo, es necesario el uso de sockets, leer el captcha y escribirlo en el campo, esto no tiene nada que ver con lo planteado originalmente
__________________
Listo?, tendría que tener 60 puntos menos de IQ para considerarme listo!!!
-- Sheldon Cooper
http://twitter.com/nemutagk
PD: No contestaré temas vía mensaje personal =)
  #11 (permalink)  
Antiguo 12/05/2011, 17:40
Avatar de baumann  
Fecha de Ingreso: mayo-2011
Ubicación: Madrid
Mensajes: 33
Antigüedad: 13 años, 6 meses
Puntos: 0
Respuesta: Script de Descarga de archivos al servidor desde una URL

Cita:
Iniciado por Nemutagk Ver Mensaje
A ver, como si hubieras dicho que estas intentando "descargar" archivos desde paginas externas a tu servidor todo seria diferente, lo que requieres es mucho mas complejo, es necesario el uso de sockets, leer el captcha y escribirlo en el campo, esto no tiene nada que ver con lo planteado originalmente
Hola Nemutagk, sigue siendo lo mismo, pero para no complicar tanto las cosas he decidido hacer el script solo para un sitio web, http://www.mapgnome.org . Pero sigue siendo lo mismo que antes.

Sería algo como esto.

Pagina Web del Servidor
----------------------

Cita:
Formulario + pegar la url http://www.mapgnome.org/map-info/484841 = descargar el mapa en la carpeta de mapas del servidor



Espero que ahora se haya entendido, disculpas si me exprese mal.
Olvídate del captcha o de las demás cosas, que son secundarias. Lo principal es esto, y cuando lo tenga ya preguntaré si no me funciona. Un saludo.
;)

Última edición por baumann; 12/05/2011 a las 18:20
  #12 (permalink)  
Antiguo 12/05/2011, 18:36
Avatar de Nemutagk
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: México
Mensajes: 2.633
Antigüedad: 20 años, 7 meses
Puntos: 406
Respuesta: Script de Descarga de archivos al servidor desde una URL

Ahora si se entiende lo que quieres, PERO, con lo mismo ah surgido un problema, y el problema es que no veo muy correcto lo que quieres hacer, básicamente te quieres "piratear" los mapas, aunque no entraré en discusiones de si esta bien o no diré varias cosas..

Entre a la página que muestras y son archivos de mas de 1 mega, el archivo que pusiste de ejemplo pesa mas de 7, eso traerá un grabe problema y es que en PHP existe un limite de tiempo y de consumo de ram, ahora, como no das información de tu hosting voy a suponer que es un hosting de paga normal, osea que no es ni un dedicado ni un virtual ni nada por el estilo, así que no creo que tengas oportunidad de ampliar el tiempo del script ni el consumo de ram disponible para PHP, aparte, personalmente yo no haría lo que quieres hacer con PHP...

Que se puede hacer, lo mejor seria buscar otra solución, personalmente crearía un ejecutable en C/C++ para algo así, pero solo es mi opinión

PD: para mi si es muy diferente al post original ya que dabas a entender que querías obligar la descarga en tu página no descargar en el servidor archivos externos
__________________
Listo?, tendría que tener 60 puntos menos de IQ para considerarme listo!!!
-- Sheldon Cooper
http://twitter.com/nemutagk
PD: No contestaré temas vía mensaje personal =)

Última edición por Nemutagk; 12/05/2011 a las 18:49
  #13 (permalink)  
Antiguo 13/05/2011, 01:32
Avatar de baumann  
Fecha de Ingreso: mayo-2011
Ubicación: Madrid
Mensajes: 33
Antigüedad: 13 años, 6 meses
Puntos: 0
Respuesta: Script de Descarga de archivos al servidor desde una URL

No es piratear en ningún momento, ese mismo trabajo podría hacerlo yo dándole a descargar el mapa y luego subiéndolo al servidor por ftp o de algún otro método. Lo que hago es para no hacer esperar a los usuarios. Sin este sistema, cada vez que alguien quiere un mapa, necesita postear su URL en el foro y que el administrador del foro que este online y haya visto el post, primero se descargue el mapa y luego cargue dicho mapa al servidor. Esto me ahorra trabajo a mi y les ahorra tiempo a los usuarios. Ya que en cuanto quieren un mapa, el único tiempo que tienen de espera es lo que tarde en subirse el mapa.

He estado mirando, aunque no me he enterado casi de nada, el comando/función curl_init y curl_exec, no se si tiene algo que ver con lo que estoy buscando.
  #14 (permalink)  
Antiguo 13/05/2011, 06:19
Avatar de Nemutagk
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: México
Mensajes: 2.633
Antigüedad: 20 años, 7 meses
Puntos: 406
Respuesta: Script de Descarga de archivos al servidor desde una URL

Lo que hagas ya es cosa tuya, ya había comentado que no entrare en discusiones sobre si es ético o no...

Si, podrías hacerlo con cURL, pero entiende el punto que quería plantear en el post anterior lo mas seguro es que tengas problemas con el tiempo de espera que tiene reservado PHP y el máximo uso de memoria ram por script en PHP, ya que los archivos que quieres "descargar" a tu servidor son muy pesados, pero bueno, puedes probar...

Para hacer lo que quieres realmente lo veo muy sencillo (en teoría), al menos sobre la página que publicaste (mapgnome.org), yo lo intentaría de la siguiente manera...
Código PHP:
Ver original
  1. //obtenemos por post el url...
  2. $pagUrl = $_POST['url'];
  3.  
  4. //Obtengo el identificador del mapa
  5. $infoUrl = explode('/',$pagUrl);
  6. $identificador= $infoUrl[2];
  7.  
  8. //obtenemos el url de la descarga y agregamos el identificador
  9. $url = 'http://www.mapgnome.org/map-download/'.$identificador;
  10.  
  11. //le damos un nombre al mapa, por ejemplo:
  12. $archivo = 'mapa_'.$identificador.'.w3x';
  13.  
  14. //Inicio la descarga
  15. $curl = curl_init($url);
  16. $archivo = fopen($archivo,'w');
  17. curl_setopt($curl, CURLOPT_FILE,$archivo);
  18. curl_setopt($curl, CURLOPT_HEADER, 0);
  19. curl_exec($curl);
  20. curl_close($curl);
  21. fclose($archivo);

Ahora, veo varios puntos, no se si todos los archivos sean con la misma extensión, si no, tendrás que averiguar que extensión es antes de descargar los archivos
__________________
Listo?, tendría que tener 60 puntos menos de IQ para considerarme listo!!!
-- Sheldon Cooper
http://twitter.com/nemutagk
PD: No contestaré temas vía mensaje personal =)
  #15 (permalink)  
Antiguo 14/05/2011, 13:07
Avatar de baumann  
Fecha de Ingreso: mayo-2011
Ubicación: Madrid
Mensajes: 33
Antigüedad: 13 años, 6 meses
Puntos: 0
Respuesta: Script de Descarga de archivos al servidor desde una URL

]Hola compañero! Muchas gracias por el codigo. La verdad que me ha venido muy bien. Todavía no hace lo que yo quiero pero va tomando forma.

Por el momento he cambiado una cosilla que no entendía porque me pasaba.

Código PHP:
Ver original
  1. $identificador = $infoUrl[4];
La informacion que contenia ese array la imprimí para ver el valor que tenía, y bueno, el identificador estaba en 5º lugar.

Ahora estoy viendo porque no descarga el mapa, porque antes no me lo descargaba debido a que no tenía el identificador correcto.

Igualmente muchas gracias, cuando tenga mas información te aviso. Saludos!
  #16 (permalink)  
Antiguo 14/05/2011, 15:47
Avatar de Nemutagk
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: México
Mensajes: 2.633
Antigüedad: 20 años, 7 meses
Puntos: 406
Respuesta: Script de Descarga de archivos al servidor desde una URL

Cual es el error o cual es el problema que tienes?
__________________
Listo?, tendría que tener 60 puntos menos de IQ para considerarme listo!!!
-- Sheldon Cooper
http://twitter.com/nemutagk
PD: No contestaré temas vía mensaje personal =)
  #17 (permalink)  
Antiguo 15/05/2011, 12:28
Avatar de baumann  
Fecha de Ingreso: mayo-2011
Ubicación: Madrid
Mensajes: 33
Antigüedad: 13 años, 6 meses
Puntos: 0
Respuesta: Script de Descarga de archivos al servidor desde una URL

No se porque no descarga, se crea un fichero con extension .w3x pero siempre vacio, o con peso 1kb. No se si es porque tengo mal configurado el php.ini o qué. De momento estoy viendo si tengo eso correcto.

Y luego estoy viendo como sacar el nombre del mapa, para que cada fichero se cree con el nombre del mapa. Ejemplo:
Código HTML:
Ver original
  1. <dt>Map Name</dt>
  2. <dd>DotA v6.72b</dd>
  3. <dt>Map Author</dt>
  4. <dd>IceFrog</dd>

Tendría que sacar el contenido de las etiquetas <dd> que van justo después de map name. <dd>DotA v6.72b</dd>

Estoy trabajando en ello. Un saludo.

Etiquetas: descarga, ficheros
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 13:01.