Ver Mensaje Individual
  #5 (permalink)  
Antiguo 22/04/2010, 13:37
hexe
 
Fecha de Ingreso: abril-2010
Mensajes: 2
Antigüedad: 14 años
Puntos: 0
Respuesta: Verificacion de ficheros vacios

Cita:
Iniciado por maturano Ver Mensaje
"Sigue fallando", ¿cómo?, ¿por qué?, ¿error?, ¿cuál?.



¿Propósito?; pregunto porque no puedes saber si al momento de abrir un archivo tiene contenido, pero puedes forzar que borre cualquier cosa que tenga si vas a escribir sobre él.
Gracias por responder gente bien sere mas explicito..

Aqui mi proposito primeramente es saber si yo tengo algun error con el servidor o es problema de php

Fijate

Tengo 2 paginas php y tengo un metodo que abre el archivo en cuestion en una de ellas


el codigo del metodo de este archivo seria el siguiente (el archivo se llama subir.php)

Código PHP:
// este seria el archivo que controla todo lo que se ha de subir al servidor


//en esta funcion lo probe de la manera filesize()
//oviamente tomo $fichero como una ruta
function fichero_Vacio_metodo_1($fichero)
{

if( 
filesize($fichero) < ) { echo "el archivo esta vacio"; } // aqui  podria darme cuenta si el fichero en cuestion esta vacio

//Sin embargo.. aqui mismo sucede una falla con el metodo filesize() y el siguiente codigo no se ejecuta 

echo "hola";


}


// mi siguiente forma de evaluar lo anterior seria mediante el metodo file()
//nuevamente tomo $fichero como una ruta y no como un descriptor de archivo
function fichero_Vacio_metodo_2($fichero)
{

// esta vez mi objetivo seria usar el metodo file que te devuelve el contenido de el archivo en  un arreglo por renglones

$contenido_del_Archivo file($fichero);

// nuevamente falla y no me analiza lo siguiente

if( count($contenido_del_Archivo) < 1){echo "el archivo esta vacio"; }
}

//finalmente analizo el archivo usando un descriptor en vez de una ruta
function fichero_Vacio_metodo_3($fichero)
{

$f fopen($fichero,"r");

//nuevamente esto no se ejecuta
if(feof($f)){echo "el archivo esta vacio";}else{echo "hola";}



Bien ese ejemplo anterior fue el codigo php para los metodos que utilize en el siguiente archivo que contiene codigo html y mando llamar las funciones anteriores


Código HTML:
<form method="post" action="subir.php" enctype="multipart/form-data">
<input name="archivo" type="file" />
<input type="submit" value="Enviar"/>
</form> 
Código PHP:
// notese quee stoy usando php5
include("Subir.php");
 
$file file($_FILES['archivo']['tmp_name']);
 
 if(!empty(
$file) )
 {
echo 
archivo_Vacio_1($_FILES['archivo']['tmp_name']);
echo 
archivo_Vacio_2($_FILES['archivo']['tmp_name']);
echo 
archivo_Vacio_3($_FILES['archivo']['tmp_name']);

 }
echo 
"este codigo si se ejecutara"
Bien yo ya resolvi el problema pero de una manera ineficiente.. use banderas para ke me indicaran si el archivo esta vacio asi si fallase a la hora de verificar que esta vacio la bandera que debio haber sido cambiada en el metodo no seria cambiada y pues por concecuencia me daria cuenta de que el archivo en efecto esta vacio

Bien otra pregunta seria si habra alguna manera de capturar este error por que de ninguna forma logro que me diga un warning ni un error

De antemano gracias por sus consejos