2012-04-10 26 views
13

Estoy teniendo un momento difícil usando $_FILEScómo comprobar si el campo de archivo está vacío?

Quiero comprobar si está vacío o no y si no está vacío, entonces no debe intentar y cargar el archivo. ¿Cómo verifico esto?

+0

http://php.net/filesize – zerkms

+0

Consulte el manual ... http://php.net/manual/en/features.file-upload.php Además, ¿cuál es su definición de "vacío"? Tamaño de archivo de 0? ¿No se seleccionó ningún archivo para cargar? – Lekensteyn

+0

No hay archivo seleccionado que, s lo que quiero decir –

Respuesta

22
if($_FILES["file"]["error"] != 0) { 
//stands for any kind of errors happen during the uploading 
} 

También hay

if($_FILES["file"]["error"] == 4) { 
//means there is no file uploaded 
} 
13

Esto debería funcionar

if (! empty($_FILES)) {...} 
+0

Esto funcionó para mí para comprobar si la página ha sido llamada sin publicar un archivo. La mayoría de las demás soluciones esperan que el índice 'archivo' esté presente y emitan un aviso. – Aviator

1
if(!empty($_FILES['myFileField'])) { 
    // file field is not empty.. 
} else { 
    // no file uploaded.. 
} 
7

Las otras respuestas no funcionó para mí. Así que he puesto mi solución:

if($_FILES['theFile']['name']=='') 
{ 
    //No file selected 
} 
5

Usted puede utilizar el valor UPLOAD_ERR_NO_FILE:

function isset_file($file) { 
    return (isset($file) && $file['error'] != UPLOAD_ERR_NO_FILE); 
} 

if(isset_file($_FILES['input_name'])) { 
    // It's not empty 
} 

Actualizado: Desde el envío de $ _FILES [ 'input_name'] puede arrojar un Aviso

function isset_file($name) { 
    return (isset($_FILES[$name]) && $_FILES[$name]['error'] != UPLOAD_ERR_NO_FILE); 
} 

if(isset_file('input_name')) { 
    // It's not empty 
} 
5

Esto es lo que trabajó para yo:

if ($_FILES['theFile']['tmp_name']!='') { 
    // do this, upload file 
} // if no file selected to upload, file isn't uploaded. 
Cuestiones relacionadas