es porque no se usa $_POST para los archivos si no $_FILES
Código PHP:
$imagen = $_FILES['html_file']['name']; //El nombre original del fichero en la máquina cliente.
$tipo = $_FILES['html_file']['type']; //El tipo mime del fichero (si el navegador lo proporciona). Un ejemplo podría ser "image/gif".
$size = $_FILES['html_file']['size']; //El tamaño en bytes del fichero recibido
$im = $_FILES['html_file']['mp_name']; //El nombre del fichero temporal que se utiliza para almacenar en el servidor el archivo recibido.
if ($imagen == NULL){ echo "No hay ninguna imagen"; }
php.net/manual/es/features.file-upload.post-method.php