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