instead of refusing to upload files with those characters, you could use code to remove them.
the following example will remove the & \ ' character, you can add others to the array:
<?php
if(isset($_FILES)) {
foreach($_FILES as $k => $v) {
$_FILES[$k]["name"] = str_replace(array("&","\\","'"),"",$_FILES[$k]["name"]);
}
}
?>