+/// Verifica que un upload sea correcto y el archivo sea de alguno de los tipos
+function check_file_upload($file, $nombre = 'El archivo', $types = array())
+{
+ switch ($file['error'])
+ {
+ case 1: //UPLOAD_ERR_INI_SIZE:
+ case 2: //UPLOAD_ERR_FORM_SIZE:
+ error($nombre.' es demasiado grande!');
+ return false;
+ case 3: //UPLOAD_ERR_PARTIAL:
+ error($nombre.' no llegó bien (se interrumpió la transmisión)!');
+ return false;
+ case 4: //UPLOAD_ERR_NO_FILE:
+ error('Debe especificar '.strtolower($nombre).'!');
+ return false;
+ case 5: //UPLOAD_ERR_NO_TMP_DIR:
+ error($nombre.'Error interno (no existe el directorio de upload)!');
+ return false;
+ }
+ if ($types and !in_array($file['type'], $types))
+ {
+ error($nombre.' debe ser del tipo '.join(' o ', $types).'!');
+ return false;
+ }
+ return true;
+}
+