@eddwinpaz, no puedes usar NULL, pues el campo existe en el formulario y en los datos enviados aunque no tenga contenido, y como explico en
este mensaje NULL está relacionado con la existencia de una variable y no con su contenido. Por lo tanto, tu script siempre devolverá
false? (La variable existe, aunque esté vacía)
Me parece que se debe usar la función
empty() para verificar de primer paso si se ha subido un archivo o no.
Saludos,