elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Sigue las noticias más importantes de seguridad informática en el Twitter! de elhacker.NET


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  Ayuda con descarga de archivo con php
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Ayuda con descarga de archivo con php  (Leído 2,824 veces)
alessander

Desconectado Desconectado

Mensajes: 9


Ver Perfil
Ayuda con descarga de archivo con php
« en: 28 Mayo 2009, 13:00 pm »

Buenas la ayuda que pido es que si hay alguna funcion para guardar la salida de un archivo en otro
Me explico??...

Bueno lo que pasa es esto: Quiero descargar un archivo por medio de php de esta manera este es el codigo:

function shapeUrl($url,$return) {
$en = strpos($url,"/");
if($return == "host") {
$dns = str_replace("http://","",$url);
$host = str_replace("www.","",$dns);
$en = strpos($host,"/");
if($host = substr_replace($host,"",$en)) {
 return $host;
}else {
return $dns;
}
}
if($return == "path" && $en) {
$url = str_replace("http://","",$url);
$url = str_replace("www.","",$url);
$posi = strpos($url,"/");
return substr($url,$posi,strlen($url));
}else {
return "/";
}
}
function GetOrHeader($dns,$metod) {
$metod = strtoupper($metod);
$host = shapeUrl($dns,"host");
$path = shapeUrl($dns,"path");
if($metod == "HEAD") {
   $conexion = fsockopen($host,"80");
   $cabecera = "HEAD $path HTTP/1.1\r\n";
   $cabecera .= "Host: www.$host\r\n";
   $cabecera .= "User-Agent: Extract/1.0\r\n";
   $cabecera .= "Connection: close\r\n\r\n";
   fwrite($conexion,$cabecera);
   return $resultado = stream_get_contents($conexion);
   fclose($conexion);
   }else if($metod == "GET") {
   $conexion = fsockopen($host,"80");
   $cabecera = "GET $path HTTP/1.1\r\n";
        $cabecera .= "Host: www.$host\r\n";
   $cabecera .= "User-Agent: Extract/1.0\r\n";
   $cabecera .= "Connection: close\r\n\r\n";
   fwrite($conexion,$cabecera);
   return $resultado = stream_get_contents($conexion);
   fclose($conexion);
   }
}

GetOrHeader("UrlDelArchivoAdescargar","get");

Todo va biien cuando devuelve la salida por medio de fpasthru() La salida es instantanea Pero cuando lo ago por medio de stream_get_contents() Tarda mucho en dar la salida, Lo que quiero acer Es escribir la salida de GetOrHeader()  en otro archivo para guardar la informacion descargada Me explico??.....

Ah! la razon por la que no uso Curl es porque la verdad quiero saber como funcionan las cosas (Claro cuando se puede verdad XD)....


Gracias por adelantado...agradezco muchooo su ayuda!! bye bye..


En línea

Azielito
no es
Colaborador
***
Desconectado Desconectado

Mensajes: 9.188


>.<


Ver Perfil WWW
Re: Ayuda con descarga de archivo con php
« Respuesta #1 en: 30 Mayo 2009, 00:35 am »

No es mas facil get_file_contents y lo mandas a imprimir y forzando la descarga e identificando el tipo mime lo guardas? '_'


En línea

alessander

Desconectado Desconectado

Mensajes: 9


Ver Perfil
Re: Ayuda con descarga de archivo con php
« Respuesta #2 en: 31 Mayo 2009, 05:48 am »

Perdon Azielito no te abras equivocado con el nombre de la funcion que me diste?? Que no el nombre es
file_get_contents() porque cuando escribir el nombre de la funcion que me diste me salio el error de Funcion indefinida.....Pero nome sirve esa funcion  Porque:

1- Necesito recuperar las cabeceras ya que el archivo que intento descargar es un video de youtube y necesito recuperar el campo Location: para redirigirme ahi.

2- Como dije en el post Quiero saber como funciona todo lo que esta en mi script y Aparte estoy estudiando el protocolo HTTP y pues nesecito comprenderlo mejor y pues la funcion que tu me diste es como si usara CURL y como dije en el post no lo quiero usar.


Pero de todos modos ya solucione el problema Azielito XD....

Aqui esta lo que ise para solucionar el problema Solamente modifique la funcion GetOrHeader() Bueno sin mas bla bla bla mio ajajajja aqui esta:

function GetOrHeader($dns,$metod) {
$metod = strtoupper($metod);
$host = shapeUrl($dns,"host");
$path = shapeUrl($dns,"path");
if($metod == "HEAD") {
   $socket = socket_create(AF_INET,SOCK_STREAM,SOL_TCP);
   $conexion = socket_connect($socket,$host,"80");
   $cabecera = "HEAD $path HTTP/1.1\r\n";
   $cabecera .= "Host: www.$host\r\n";
   $cabecera .= "User-Agent: Extract/1.0\r\n";
   $cabecera .= "Connection: close\r\n\r\n";
   socket_write($socket,$cabecera,strlen($cabecera));
   $resultado = "";
   while($salida = socket_read($socket,2048)) {
   $resultado = $salida;
   }
   return $resultado;
   socket_close($socket);
   }else if($metod == "GET") {
   $socket = socket_create(AF_INET,SOCK_STREAM,SOL_TCP);
   $conexion = socket_connect($socket,$host,"80");
   $cabecera = "GET $path HTTP/1.1\r\n";
   $cabecera .= "Host: www.$host\r\n";
   $cabecera .= "User-Agent: Extract/1.0\r\n";
   $cabecera .= "Connection: close\r\n\r\n";
   socket_write($socket,$cabecera,strlen($cabecera));
   $resultado = "";
   while($salida = socket_read($socket,2048)) {
   $resultado = $salida;
   }
   return $resultado;
   socket_close($socket);
   }
}


Muchisisisismas Graciass!!! bye bye
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Recuperar descarga desde archivo.part
Dudas Generales
79137913 0 2,056 Último mensaje 21 Junio 2012, 19:15 pm
por 79137913
Ayuda con descarga
PHP
erikcatala 0 1,251 Último mensaje 9 Febrero 2016, 05:03 am
por erikcatala
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines