| import streamlit as st | |
| import base64 | |
| import time | |
| time_str = time.strftime('%Y%m%d-%H%M%S') | |
| class FileDownloader(object): | |
| def __init__(self, data, file_ext, file_name='myfile') -> None: | |
| super(FileDownloader, self).__init__() | |
| self.data = data | |
| self.file_ext = file_ext | |
| self.file_name = file_name | |
| def download(self): | |
| b64 = base64.b64encode(self.data.encode()).decode() | |
| new_file_name = '{0}_{1}.{2}'.format(self.file_name, time_str, self.file_ext) | |
| href = """ | |
| <a href="data: file/{}; base64,{}" download="{}">Download it</a> | |
| """.format(self.file_ext, b64, new_file_name) | |
| st.markdown(href, unsafe_allow_html=True) | |