Comunidad de diseño web y desarrollo en internet online

Urgente.- Problemas con descarga de archivos...

Citar            
MensajeEscrito el 03 Jul 2007 02:11 pm
Hola, tengo un problema que me tiene al borde de un ataque de nervios.

Tengo un script en php para descargar todo tipo de archivo, pero he estado teniendo problemas con esto. Principalmente me mostraba un error de que el archivo no existia, asi que despues de tanto revisar hice un cambio, antes el path al archivo era $path ="/raiz/programas/" y luego lo cambié a $path="programas/", cuando realice este cambió el error dejo de mostrarse pero ahora se muestra el contenido de algunos archivos (txt) en el navegador, cuando lo que yo necesito es que de la opción de abrir o guardar a disco.

Algo más que queria comentar es que en localhost funciona de maravilla y la diferencia es que mi localhost tiene php5 y apache 2, mientras que el servidor remoto tiene php 4.4.7 y 1.3.37. Tendrá que ver en algo las versiones del servidor apache y php?

Aqui les dejo el codigo para descarga (descarga.php):

<?php
$id = $_GET["programa"];
$path = "programas/";
$enlace = $path.$id;
header ("Content-Disposition: attachment; filename=".$id."\n\n");
header ("Content-Type: application/octet-stream");
header ("Content-Length: ".@filesize($enlace));
readfile($enlace);
?>
Ah porcierto tambien quiero aclarar que he cambiado las posiciones de las etiquetas headers y aun asi no funciona en el servidor, abajo (localhost) marcha excelente.


Espero me puedan ayudar, porque tengo 2 aplicaciones esperando para ser terminadas :(

Gracias anticipadas
Ana Azuaje

Por maygreth

20 de clabLevel



Genero:Femenino  

msie
Citar            
MensajeEscrito el 04 Jul 2007 02:05 pm
puede ser que necesites poner la ruta absoluta

$path='/home/user/public_html/programas/';

Por chegue10

6 de clabLevel



 

firefox
Citar            
MensajeEscrito el 04 Jul 2007 05:45 pm
Hola, como comente anteriormente, con la dirección absoluta me da error:

Warning: readfile(/home/user/public_html/programas/Halterofilia.doc) [function.readfile]: failed to open stream: No such file or directory in /home/ic2corp/public_html/descarga.php on line 8

Gracias igual por tu atención. Si tienes alguna otra alternativa avisame.
Ana

Por maygreth

20 de clabLevel



Genero:Femenino  

msie
Citar            
MensajeEscrito el 20 Oct 2011 10:18 pm
si tu server lo permite y el archivo no esta protegido pues un
file_get_content
bastara

Código PHP :

$archivo = file_get_contents('http://www.juegoszaping.com/data/juegos/animacion/Alfnar_PPoier.lguC.swf');
file_put_content("archivoFlash.swf",$archivo);

Por tuadmin

Claber

598 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 21 Oct 2011 03:08 am
exato ese es la causa de todos los males :)
ahora si sigues queriendo usar el file_get_contents
puedes usar el argumento de $CONTEXT que tiene disponible :)
el context te arma una peticion HTTP automaticamente y lo traera a tu server asi no violaras el allow_url_open
es una forma indirecta de usar fsockopen()

Código PHP :

$url = "http://www.juegoszaping.com/data/juegos/animacion/Alfnar_PPoier.lguC.swf";
$opts = array(
        'http' => array(
            'method'=>"GET",
            'header'=>"Content-Type: text/html; charset=utf-8"
        )
    );

    $context = stream_context_create($opts);
    $result = file_get_contents($url,false,$context); 

pruebalo primero en tu servidor local luego lo subis a tu host y ves que tal rula
recuerda que donde uses el file_put_content osea el directorio tiene que tener permisos de escritura

http://es2.php.net/file_get_contents
http://es2.php.net/manual/es/function.stream-context-create.php

Por tuadmin

Claber

598 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 21 Oct 2011 03:44 pm
pero el file_get_content se comporta de manera distintanta al usar stream_context_create,
como te dije es una forma indirecta de hacer un fsockopen,, buno pero tienes que ver si en el host acepta las funciones de streaming como el fsockopen,stream_socket_client y similares
o si no puedes optar por usar la libreria CURL si es que te lo permite

Por tuadmin

Claber

598 de clabLevel



Genero:Masculino  

firefox

 

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