Foros del Web » Programando para Internet » PHP »

como puedo bajar archivos del servidor desde un cliente????

Estas en el tema de como puedo bajar archivos del servidor desde un cliente???? en el foro de PHP en Foros del Web. tengo este codigo con un servidor que tienes las variagles globales en off: <? $file = "Invierno.jpg "; $url ="/var/www/sete/tmp/$file"; header ("Content-Disposition: attachment; filename=".$file." "); ...
  #1 (permalink)  
Antiguo 31/05/2005, 03:07
 
Fecha de Ingreso: mayo-2005
Mensajes: 23
Antig№edad: 18 aёos, 9 meses
Puntos: 0
Pregunta como puedo bajar archivos del servidor desde un cliente????

tengo este codigo con un servidor que tienes las variagles globales en off:
<?
$file = "Invierno.jpg "; $url ="/var/www/sete/tmp/$file";
header ("Content-Disposition: attachment; filename=".$file." ");
header ("Content-Type: application/image/jpeg");
header ("Content-Length: ".filesize($url));readfile($url);
?>

i lo que me pasa con esto es que se me baja el archivo pero no con el tamaёo original, tambien lo he probado con diferentes archivos y todos se me bajan entre 523 y 525 bytes i despues cuando quiero abrirlo me pones que no puede determinar el tipo i no se me abre.

Tambien agradeceria otra maneras de poder bajar archicos del servidor de forma que te salga como una pestaёa con todos los archivos de la carpeta seleccionada. Haber si me podeis ajudar gracias
  #2 (permalink)  
Antiguo 31/05/2005, 15:20
O_O
 
Fecha de Ingreso: enero-2002
Ubicaciєn: Santiago - Chile
Mensajes: 34.417
Antig№edad: 22 aёos, 2 meses
Puntos: 129
Cita:
poder bajar archicos del servidor de forma que te salga como una pestaёa con todos los archivos de la carpeta seleccionada
Que es eso de "pestaёa" con todos los archivos de una carpeta seleccionada? .. Te refieres a ciertos archivos de tal directorio del servidor? .. que los baje .. como? .. comprimidos? ..

--------------------------

Sobre el cєdigo que pusistes ...

El "filename" de la cabecera HTTP:
Cєdigo PHP:
header ("Content-Disposition: attachment; filename=".basename($file)); 
Es el nombre del archivo que va a tener una vez que te lo descargues .. asэ que usa "basename()" para que sea sєlo el nombre del archivo (no con ruta).

Esta cabecera:
header ("Content-Type: application/image/jpeg");

No es correcta .. Esa define el formato MIME del archivo que descargas .. NO sщ de que tipo son los que pretendes descargar (si son del mismo tipo o son o pueden ser variados) .. pero ahэ debe ir el formato MIME del archivo en concreto que descargas (un jpg por ejemplo serэa: image/jpeg .. pero no "application/...../....")

header ("Content-Length: ".filesize($url));
$url de donde sale? .. eso debe ser en tu caso $file ...

Un saludo,
  #3 (permalink)  
Antiguo 01/06/2005, 03:00
 
Fecha de Ingreso: mayo-2005
Mensajes: 23
Antig№edad: 18 aёos, 9 meses
Puntos: 0
un parte del problema resuelto

muchas gracias por lo que me has dicho ahora me va bien para bajarme imagenes de tipo jpeg. pero para cada tipo de archivo hay una cabezera diferente??? i si las hay no me se como son para ponerlas. donde podria encotrar esa informacion de los headers???

es ahora lo estoy probando con un archivo *.doc y tengo este codigo:
<?
$file = "hola.doc"; $url ="/var/www/sete/tmp/$file";
header("Content-type: application/force-download");
header ("Content-Disposition: attachment; filename=".$file." ");
header ("Content-Type: application/octet-stream");
header ("Content-Disposition: attachment; filename=".basename($file));
header ("Content-Length: ".filesize($file));readfile($url);

?>

en este doc le he escrito por dentro hola. pero cuando lo bajo i lo abro me sales esto:

<br />
<b>Warning</b>: stat failed for hola.doc (errno=2 - No such file or directory) in <b>/var/www/sete/Untitled-1.php</b> on line <b>7</b><br />
<br />
<b>Warning</b>: Cannot add header information - headers already sent by (output started at /var/www/sete/Untitled-1.php:7) in <b>/var/www/sete/Untitled-1.php</b> on line <b>7</b><br />
╨╧ рб▒ с > ■  " $ ■    !                                                                                                                                                                                                                                                                                                                                                                                                                                                         ье┴ 5@ Ё ┐

Y con lo de las otras maneras de bajar archivos que no sea como esta es mas o menos como has dicho tu. que te salga una pestaёa con los archivos que hay en un carpeta del servidor. pretengo que se bajen tal i como estan sin estar comprimidos. pero puedes explicarme las dos maneras estaria muy agredecido por tu ayuda .
gracias por todo y espero no abusar de vuestra ayuda
  #4 (permalink)  
Antiguo 01/06/2005, 04:20
 
Fecha de Ingreso: mayo-2005
Mensajes: 23
Antig№edad: 18 aёos, 9 meses
Puntos: 0
he resuelto lo del *.doc

al final he encotrado algo para poderme bajar los *.doc i se me abran bien .
este es el codigo que he puesto:
<?
$file = "hola.doc"; $url ="/var/www/sete/tmp/$file";
header("Content-type: application/force-download");
header ("Content-Disposition: attachment; filename=".basename($file));
header ("Content-Type: text/vnd.doc");
header ("Content-Type: image/jpep");
header ("Content-Length: ".filesize($url));readfile($url);

?>
i en el filesize he puesto el $url por que asi funciona porque si pongo el de $file no me va. a i otra cosa con el ejemplo de las imagenes tb me funciona en el filesize poniendo $url.

ahora solo faltaria hecharme una mano en la otra manera de bajar archivos que lo he explicado en la respuesta anterior. gracias por intentar ayudarme
  #5 (permalink)  
Antiguo 02/06/2005, 06:34
O_O
 
Fecha de Ingreso: enero-2002
Ubicaciєn: Santiago - Chile
Mensajes: 34.417
Antig№edad: 22 aёos, 2 meses
Puntos: 129
Si te fijas:

Cita:
br />
<b>Warning</b>: stat failed for hola.doc (errno=2 - No such file or directory) in <b>/var/www/sete/Untitled-1.php</b> on line <b>7</b><br />
Tienes ahэ un problema para leer ese archivo .. no estс en ese directorio indicado .. Ese error se genera junto con tu archivo ..

Por lo demсs .. Realmente no sщ si sabes que significan las cabeceras HTTP que usas .. pero no puedes hacer:

header ("Content-Type: text/vnd.doc");
header ("Content-Type: image/jpep");

O usas una u otra .. pero no -ambas- y sobre todo define bien el formato MIME que es tu archivo .. (no recuerdo cual es exactamente para MS Word)

Pero si es una imagen .jpg serэa image/jpeg ...

Tambiщn te indiquщ que hace basename() .. por ende ..
$file = "hola.doc"; $url ="/var/www/sete/tmp/$file";

Si ya en $file .. tienes el nombre del archivo -sєlo- .. no es necesario usar basename() en:
header ("Content-Disposition: attachment; filename=".basename($file));

A lo sumo si quieres .. omite $file .. usa $url sєlo y:
header ("Content-Disposition: attachment; filename=".basename($url));

Un saludo,
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 23:48.