I was experiencing the same trouble with a download manager I created. The problem I was having involved the file name being too long and the extension being clipped off.
Example: File Name : Organizational Protocols and Other Things That are Important.pd
<?php
header("Content-Disposition: attachment; filename=$File_Name");
?>
Solution: Increased the MySQL database field to 255 to store the file name, and performed a length check before saving the blob. If the length > 255 trim it down to 250 and add the file extension.