Maybe in the filename there is a special char "+" or something like this. I had such a problem, file was uploaded but could not be downloaded.
First: "test1+test2.doc" was found on server as "test1+test2.doc" but the Link was "test1_test2.doc", I had to rename it on the Server to test1_test2.doc", than I could downlaod the file
I put this into the cvs/bugs with the wish to filter bad strings from files.
hope this helps