File size: 706 Bytes
9132d63
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
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)