dopo l'upload il file viene inserito nell'array $_FILES.
Quindi probabile che $filename sia vuoto
prova a testarlo cosi':
echo "<pre>".var_dump($filename)."</pre>";
exit;
se e' vuoto penso che dovrai provare con
$_FILES["filename"]["name"];
ciao