Aby przesłać plik formularz musi mieć atrybut enctype="multipart/form-data". W tej sytuacji plik się nie przesyła, a więc ten element tablicy nie jest zdefiniowany, stąd błąd.
Nawet jak to zmienisz to i tak masz już na własnej skórze przykład, że Twój kod jest dziurawy, bo gdy nie dostanie jakiegoś elementu z zewnątrz rzuca błędami. Wypadałoby to też poprawić przez odpowiednie zabezpieczenie, które sprawdzi czy plik faktycznie istnieje i dopiero wykona na nim dalsze operacje.