Learn the language of the web.
Learn how for both an input the 'multiple' attribute and with multiple input elements.
First get the data in blob or blob-like format and then access its size property.
You can combine lastIndexOf() and slice() to get the file extension.
Using the HTML5 Canvas API, you can do image compression on the frontend.
Create a download indicator by reading the body of the response.
There is no native expiration option but it can be implemented using timestamps.
Pass a function through localStorage using the Function constructor object.
Allow your users to download any fetchable JSON file in CSV format.