The best practice is to have attachments in dedicated fields, for more clarity and structure. That way, some can be required and others optional for your customers.
What's the best way to implement it?
Atlassian is working on Forms attachments fields, soon be available!
You can use the File Field Jira App.
Files will be stored in the same folder than your Jira attachments, so if you decide to stop using the App or migrate to JSM Cloud, you can easily move back all your attachments to the standard Jira attachment fields.
And you, what are you using for your attachments?