14.1. How Drupal Serves Files14.2. Managed and Unmanaged Drupal APIs14.2.1. Public Files14.2.2. Private Files14.3. PHP Settings14.4. Media Handling14.4.1. Upload Field14.4.2. Video and Audio14.5. File API14.5.1. Database Schema14.5.2. Common Tasks and Functions14.5.2.1. Finding the Default Files URI14.5.2.1.1. Saving Data to a File14.5.2.1.2. file_save_data($data, $destination = NULL, $replace = FILE_EXISTS_RENAME)14.5.2.2. Copying and Moving Files14.5.2.2.1. file_copy($source, $destination = NULL, $replace = FILE_EXISTS_RENAME)14.5.2.2.2. file_move($source, $destination = NULL, $replace = FILE_EXISTS_RENAME)14.5.2.3. Checking Directories14.5.2.4. Uploading Files14.5.2.4.1. file_save_upload($source, $validators = array(), $destination = FALSE, $replace = FILE_EXISTS_RENAME)14.5.2.4.2. file_validate_extensions($file, $extensions)14.5.2.4.3. file_validate_is_image($file)14.5.2.4.4. file_validate_image_resolution($file, $maximum_dimensions = 0, $minimum_dimensions = 0)14.5.2.4.5. file_validate_name_length($file)14.5.2.4.6. file_validate_size($file, $file_limit = 0, $user_limit = 0)14.5.2.5. Getting the URL for a File14.5.2.5.1. file_create_url($uri)14.5.2.6. Finding Files in a Directory14.5.2.6.1. file_scan_directory($dir, $mask, $options = array(), $depth = 0)14.5.2.7. Finding the Temp Directory14.5.2.8. Neutralizing Dangerous Files14.5.2.8.1. file_munge_filename($filename, $extensions, $alerts = TRUE)14.5.2.8.2. file_unmunge_filename($filename)14.5.2.9. Checking Disk Space14.5.2.9.1. file_space_used($uid = NULL, $status = FILE_STATUS_PERMANENT)14.5.3. Authentication Hooks for Downloading14.6. Summary