File downloader with partially-downloading support