That's what I'm initially thinking but renamed a file to just .db and it didn't like that either.
I'll try one with a zip and see if that works.
As for the number strategy then why not just obfuscate the whole thing like most sites do.
Something like:
mysite.com/folder/^^*H#%&w208
would equal something like:
mysite.com/folder/mynewfile.zip
The filename ^^*H#%&w208 would be unique maybe use some GUID type filename creator (I'm sure PHP has something like that built-in or someone has created a script for it already)
Then the database stores that unique name AND the real name and when it downloads it to the client it renames it to the real name.
.