Foros del Web » Programando para Internet » PHP »

Ayuda con is_file

Estas en el tema de Ayuda con is_file en el foro de PHP en Foros del Web. Hola a todos !! Necesitaria por favor alguien que pudera echarme una mano para resolver este misterio. Resulta que utilizo links ftp para poner a ...
  #1 (permalink)  
Antiguo 10/05/2007, 13:15
 
Fecha de Ingreso: julio-2005
Mensajes: 3
Antigüedad: 18 años, 9 meses
Puntos: 0
Ayuda con is_file

Hola a todos !!

Necesitaria por favor alguien que pudera echarme una mano para resolver este misterio. Resulta que utilizo links ftp para poner a disposicion de mis clientes imagenes en alta resolucion que alojo en un servidor ftp propio.

Resulta que si ruedo mi web en mi servidor local, y pincho sobre el link ftp para descargar la imagen, lo hace correcto, se contecta a mi servidor ftp y descarga la imagen tiff.

Pues bien, cuando subo mi web a mi proveedor y la ruedo en real, no hay manera de que me conecte con mi servidor y descarge la imagen, siempre me lanza false el siguiente if: if (!is_file($file)) {die ........

Mi proveedor de alojamiento, me asegura que no existe ninguna restriccion,
les pongo el codigo para darles todos los detalles.

Código PHP:
function dl_file($file){

   
//First, see if the file exists
   
if (!is_file($file)) { die("<b>404 File not found!</b>"); }
   
   
//Gather relevent info about file
   
$len filesize($file);
   
$filename basename($file);
   
$file_extension strtolower(substr(strrchr($filename,"."),1));

   
//This will set the Content-Type to the appropriate setting for the file
   
switch( $file_extension ) {
     case 
"pdf"$ctype="application/pdf"; break;
     case 
"exe"$ctype="application/octet-stream"; break;
     case 
"zip"$ctype="application/zip"; break;
     case 
"doc"$ctype="application/msword"; break;
     case 
"xls"$ctype="application/vnd.ms-excel"; break;
     case 
"ppt"$ctype="application/vnd.ms-powerpoint"; break;
     case 
"gif"$ctype="image/gif"; break;
     case 
"png"$ctype="image/png"; break;
     case 
"jpeg":
     case 
"jpg"$ctype="image/jpg"; break;
     case 
"mp3"$ctype="audio/mpeg"; break;
     case 
"wav"$ctype="audio/x-wav"; break;
     case 
"mpeg":
     case 
"mpg":
     case 
"mpe"$ctype="video/mpeg"; break;
     case 
"mov"$ctype="video/quicktime"; break;
     case 
"avi"$ctype="video/x-msvideo"; break;

     
//The following are for extensions that shouldn't be downloaded (sensitive stuff, like php files)
     
case "php":
     case 
"htm":
     case 
"html":
     case 
"txt": die("<b>Cannot be used for "$file_extension ." files!</b>"); break;

     default: 
$ctype="application/force-download";
   }

   
//Begin writing headers
   
header("Pragma: public");
   
header("Expires: 0");
   
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
   
header("Cache-Control: public"); 
   
header("Content-Description: File Transfer");
   
   
//Use the switch-generated Content-Type
   
header("Content-Type: $ctype");

   
//Force the download
   
$header="Content-Disposition: attachment; filename=".$filename.";";
   
header($header );
   
header("Content-Transfer-Encoding: binary");
   
header("Content-Length: ".$len);
   @
readfile($file);
   exit;
}
dl_file("ftp://usuario:password@ip_mi_servidor:puerto/".$_REQUEST['fichero']); 
  #2 (permalink)  
Antiguo 10/05/2007, 13:18
Avatar de el cirujano  
Fecha de Ingreso: mayo-2003
Ubicación: Frente al PC
Mensajes: 609
Antigüedad: 20 años, 11 meses
Puntos: 3
Re: Ayuda con is_file

pregunto, en que carpeta tienes los archivos? acegurate de que tienes el PATH correcto de donde debes descargar los archivos...

una cosa es FTP_PUBLIC y otra es FTP_PRIVATE
__________________
CSS2 + AJAX + PHP + MySQL, una mezcla sin competencia!!!!!!
  #3 (permalink)  
Antiguo 11/05/2007, 01:33
 
Fecha de Ingreso: julio-2005
Mensajes: 3
Antigüedad: 18 años, 9 meses
Puntos: 0
Re: Ayuda con is_file

Hola cirujano,

El path es es correcto, los ficheros se encuentran en la raiz del sitio FTP, por ejmp. C:\FTP.

El servidor lo tengo configurado, de tal manera, que cuando se conecta el usuario puesto en el link, lo lleva a esta carpeta, por eso, en la cadena del link despues del puerto solo indico la barra invertida.

Sin embargo, no entiendo lo del FTP_PUBLIC y FTP_PRIVATE, te agradeceria una pequeña aclaracion sobre esto ultimo.

Gracias de antemano.
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 16:18.