TLS ensures integrity of data while in transport. If the file was "generated" by the server without the need for any external input data (e.g., Adobe PDF files can be "generated" on the fly, by combining document templates with other data / metadata), and the server is your "final authority" on the matter, and you've deployed defenses against SSL/TLS MITMs, then you probably don't need any further digital signatures.
If you consider other scenarios such as these below, you would need proper digital signatures signed at each point in the document (or file)'s lifecycle where you need to ensure integrity:
- The origin of the file is not the server itself but another user - who stored / uploaded it into the server? In this case, would you like to be sure that the file is "as it was originally sent by the first user?" or even "as it was originally created by its author?".
- The file was generated from external input. e.g., a document from a document store where it was stored after due process (e.g., a registered document) with or without additional annotations. In this case, even though the file was generated by the server, the original data may need integrity guarantees embedded in the document. It is possible to do this by signing just the underlying data - not necessarily the file itself.
- If it is a device to device communication and there are no other external factors - even then, typically you will have components that originate the data -> some 3rd party components -> transport (usually a 3rd party component) -> recipient with similar stack in reverse. Now your originating and receiving components may or may not want to trust what happens in between (including the possibility of SSL/TLS MITMs) - and hence want "end to end" integrity guarantees; not just transport integrity.
Conclusion: Do you trust every single component between your originating component and your receiving component? If you do, then you're fine. If not, you want to sign the data/file when it's leaving your control and make sure you got it without changes when it reaches your control at the destination.
Points 1 & 2 came up when we were designing the MCA21 system for company registration & annual returns filing (www.mca.gov.in).
Point 3 came up in a startup where we were designing a large network of firewalls coordinating their defense.