Salesforce has recently released the lightning:fileUpload component which is basically a file uploader for uploading and attaching files to records.
The provides an easy and integrated way for users to upload multiple files. The file uploader includes drag-and-drop functionality and filtering by file types.
For now, it is available only in beta. It will prevent us from writing complex code and as such, does not come with limitations such as heap sizes, problems with assigning permissions to custom devs.
Here are some preview of the component:
You can deploy the component to your Salesforce by clicking on the button below:
And source code is available at: https://github.com/kevanmoothien/lightning-file-uploader
Unfortunately, it only uploads files and for those who still want to use attachment, here is one of my previous blog on how it can be achieved.