The spaces and special characters are a problem, and they tend to cause different problems if on a windows or linux server. If these are your files, simply rename them. If filenames are supplied by users, perhaps you could can a validation routine to "disallow" spaces and accented characters. Force all filenames to be alphanumeric.
You could use a renaming function to replace all spaces with an underscore.
However, this topic was discussed recently here:
http://www.daniweb.com/forums/thread232363.html
and I believe the thread-starter found a solution
//EDIT
Sorry, just re-read your post. With regard to title. Am I correct in assuming the filename is the title? If so and you use underscores in filenames (instead of spaces) - just use:
$rawtitle = replace_str('_',' ',$file);
//If you don't need the file extension for the title:
$title = substr($rawtitle,0, strpos($rawtitle,'.'));
//I can't remember if the third parameter needs to be +1, -1 or if it's ok as is - always gets me that one!
The $title can be forced to uppercase or lowercase with strtoupper() or strtolower() respectively.
Alternatively, you could use CSS to style the title:
h3.filetitle {text-transform:uppercase}
/*OR*/
h3.filetitle {text-transform:capitalize}
/*OR*/
h3.filetitle {text-transform:lowercase}
The 'capitalize' will give "A Title With Capitals For All Words"
But you probably knew that.