Comunidad de diseño web y desarrollo en internet online

forzar descarga archivos q se encuentran en otro servido.

Citar            
MensajeEscrito el 16 Abr 2009 05:11 pm
Hola estoy haciendo una página web en PHP que permita descargar archivos que se encuentren en otro servidor.
Me explico mejor.
tengo un servidor donde están alojados todos mis archivos y otro servidor donde está la pagina.
http://serv1.com/
http://serv2.com/
lo que quiero hacer es que desde el servidor http://serv1.com/ poder descargar los archivos del serv http://serv2.com/ sin que se enteren que la estoy descargando de ese servidor.
En el script PHP cojo la URL del archivo ejm.
http://serv2.com/archivos/musica.mp3
y desde http://serv1.com/descargar.php que forcé la descarga de ese archivo pero sin que muestre referencia alguna del servidor2 y sin mostrar el nombre del archivo.
el archivo descargado tendrá otro nombre ejm. otramusica.mp3
Espero alguien tenga alguna idea de como hacerlo
Gracias y Saludos

Por roypool

8 de clabLevel



 

firefox
Citar            
MensajeEscrito el 16 Abr 2009 06:30 pm
Aqui en este sitio tenemos la información de como forzar la descarga de un archivo

http://www.cristalab.com/tutoriales/forzar-descargas-con-php-c166l/

esto en conjunto con la funcion file_get_contents se me ocurre que podrias manejarlo mas o menos asi :xD

[code=php]<?php
$f = $_GET["f"];
$url = $_GET['url'];
header("Content-type: application/octet-stream");
header("Content-Disposition: attachment; filename=\"$f\"\n");

$archivo = file_get_contents($url);
echo $archivo; ?>
[/code]

y entonces solo mandas a pedir el archivo de la siguiente manera

descargar.php?f=Cancion.mp3&url=http://serv2.com/musica/Archivo.mp3

:D

Por Azielito

79 de clabLevel



 

Frente al PC

firefox
Citar            
MensajeEscrito el 16 Abr 2009 06:32 pm
colocale un header location con la url de tu archivo en el serv2 de esta forma haces lo q necesitas

Por talcual

686 de clabLevel



 

Colombia

firefox
Citar            
MensajeEscrito el 16 Abr 2009 10:48 pm
Gracias amigos con buestra ayuda logre encontrar la solucion este es el codigo.
$nuevonombre='nuevonombre.mp3';
$url= 'direccion url';
header ("Content-Disposition: attachment; filename=".$nuevonombre."\n\n");
header ("Content-Type: application/octet-stream");
header ("Content-Length: ".filesize($url));
readfile($url);

Por roypool

8 de clabLevel



 

firefox
Citar            
MensajeEscrito el 17 Abr 2009 02:58 am
pos si eso era lo q tenias q hacer :-)

Por talcual

686 de clabLevel



 

Colombia

firefox
Citar            
MensajeEscrito el 10 Feb 2010 06:38 am
HOLA RECOBRANDO VIDA AL POS!!,, TENGO EL MISMO PROBLEMA

PERO YO LO TENGO ENEL LOCALHOST Y FUNSIONA BIEN es decir descarga.php?id=2 y se descarga bien el archivo mediante la sql...
les informo que el archivo php que cree le puse el include config.php y la querry de la tabla para que la encuentre y funsiona.. pero cuando lo intento en la web mia no funciona,, y sale esto:

Warning: Cannot modify header information - headers already sent by (output started at /home/sofocan2/public_html/portal/config.php:7) in /home/sofocan2/public_html/portal/enlaces.php on line 10

Warning: readfile(http://********************.mp3) [function.readfile]: failed to open stream: HTTP request failed! HTTP/1.1 400 Bad Request in /home/sofocan2/public_html/portal/enlaces.php on line 11


este es mi codigo, que funsiona pero en el local host no en mi web
include("config.php") ;
if(is_numeric($_GET['id'])) {
$resp = mysql_query("select mp3 from bajados where id='".$_GET['id']."'") ;
if(mysql_num_rows($resp) != 0) {
$datos = mysql_fetch_array($resp) ;

$datos[mp3]."/".$datos[titulo];
header("Content-disposition: attachment; filename=\"".basename($datos[mp3])."\"");
readfile($datos[mp3]);
}
}
?>

el error que sale

Por elpuya2r

0 de clabLevel



 

sdsd

msie7

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.