[ Ajuda ] Baixar arquivos remotos PHP

  • Autor Autor Mariquena
  • Data de início Data de início
Tradução em andamento: em alguns minutos este tópico estará em português. Por enquanto, o conteúdo está no original em espanhol. Ver original
M

Mariquena

Curioso
Usuário com poucas negociações! Use sempre o saldo do ForoBeta!
hola que tal saludos gente
paso por aqui para pedirles algo de ayudita
estoy comenzando con una web de jueguitos flash haber que tal me va, mi inter es lento asi que bajarlos a mi pc y subirlos es una odisea, por eso quiero extraerlos directamente al servidor.
estuve varios dias buscando un plugin o un codigo pero no encontre mucho, lo maximo que logre fue encontrar informacion en esta pagina http://www.forosdelweb.com/wiki/PHP:_file_get_contents%28%29,_cURL,_HTTP_Request
y logre crear esto

PHP:
 <?php 
/* obtengo la url de un juego flash por un formulario via POST */
$enlace = $_POST['url'] ;
/* no me acuerdo que esto xD */
$url = "$enlace"; 
/* esto tampoco  */
$g=basename($url); 
/* supongo que con esto obtengo el juego de forma remota */
$content = file_get_contents($url); file_put_contents($g,$content);
$ruta = "$content";
$file = basename($ruta);

/* me muestra la url del juego */
 echo "http://miweb.com/games/$g" ; ?>
hasta el momento funciona bien, le colocolo una url de algun juego flash alojado en otro sitio y lo guarda en el servidor
mi unico problema es que solo lo guarda en donde se ejecuta el formulario
en mi caso es la carpeta miweb.com/games
y en donde necesito la ayuda es que me indiquen que tengo que añadirle al codigo para poder guardarlo en otra carpeta
para ser mas especifica en miweb.com/wp-content/uploads/swf/
apenas ando aprendiendo php y esto de las webs y lo unico que hago realmente es buscar en google y copiar y pegar los codigos de los tutoriales y modificarlos con lo poco que aprendo, pero en este caso no logro encontrar nada en google o quizas no se buscar muy bien

espero me puedan ayudar chicos, de paso espero el codigo les sirva a todos, a mi me ayuda mucho para ahorrar tiempo
un saludo a todos desde argentina :love_heart:
 
Foi útil? Participe da conversa

Com sua conta grátis você pode responder, mandar mensagem privada ao autor e comprar com Saldo retido: o pagamento é liberado quando você recebe o combinado.

Leva 30 segundos · você volta a este tópico ao terminar
Intentaste poniendo en ruta
PHP:
$ruta = "../wp-content/uploads/swf/";
 
Última edição:
Intentaste poniendo en ruta
PHP:
$ruta = "../wp-content/uploads/swf/";

ya lo coloque como me has dicho pero se sigue guardado en el mismo lugar
Puede cURL para descargarlo
y eso como funciona ? el codigo que tengo lo descarga , solo que no se que añadirle para cambiar la ruta donde se guarda el juego :sorrow:
 
Mejor busca la documentacion de file_put_contents()
 
ya lo consegui !!!!

el codigo final quedaria de este modo
PHP:
<?php 
$enlace = $_POST['url'] ;
$url = "$enlace"; 
$g=basename($url); 
$dir_to_save = "../wp-content/uploads/swf/";
if (!is_dir($dir_to_save)) {
  mkdir($dir_to_save);
}
file_put_contents($dir_to_save."$g",file_get_contents("$enlace"));


 echo "http://miweb.com/wp-content/uploads/swf/$g" ;

 ?>

gracias a los que me ayudaron y a esta web que me dio la idea php - Save file with file_put_contents in folder - Stack Overflow :love_heart:
 
así sería correcto:

PHP:
<?php  
// carpeta donde guardaremos
$ruta = 'descargas/';
/* obtengo la url de un juego flash por un formulario via POST */ 
$url = $_POST['url'] ;  
// obtenemos el nombre
$nombre=basename($url);
// obtenemos el archivo desde la $url
$archivo = file_get_contents($url); 
// guardamos el archivo en la $ruta,
file_put_contents($ruta.$nombre,$archivo); 
/* me muestra la url del juego */ 
 echo 'http://miweb.com/'.$ruta.$nombre ; 
?>
 
Seria mas correcto usar la funcion isset() para la variable $_POST
 
Seria mas correcto usar la funcion isset() para la variable $_POST

si es verdad no me había dado cuenta

PHP:
$url = isset($_POST['url']) ? $_POST['url'] : false;

puedes luego verificar si url es diferente de falso, o no hacer nada.

o también puedes quitar el operador ternario y poner un if que en caso de no existir tire error.

te lo dejo a gusto Mariquena.

saludos!
 
Última edição:
Voltar
Topo