awacke1 commited on
Commit
99cb0da
1 Parent(s): 97ef61e

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +17 -3
app.py CHANGED
@@ -46,14 +46,27 @@ def zip_subdirs(start_dir):
46
  yield zip_filename
47
 
48
  def get_zip_download_link(zip_file):
 
 
 
 
 
 
 
 
 
 
 
 
 
 
49
  with open(zip_file, 'rb') as f:
50
  bytes = f.read()
51
  b64 = base64.b64encode(bytes).decode()
52
  link_name = os.path.basename(zip_file)
53
- href = f'<a href="data:file/zip;base64,{b64}" download="{link_name}">Download: {link_name}</a>'
54
  return href
55
-
56
-
57
  @st.cache_resource
58
  def create_zip_of_files(files):
59
  zip_name = "all_files.zip"
@@ -241,6 +254,7 @@ def main():
241
  if st.sidebar.button("⬇️ Download All"):
242
  start_directory = '.' # Current directory
243
  for zip_file in zip_subdirs(start_directory):
 
244
  st.sidebar.markdown(get_zip_download_link(zip_file), unsafe_allow_html=True)
245
 
246
  # Expander for showing URL history and download links
 
46
  yield zip_filename
47
 
48
  def get_zip_download_link(zip_file):
49
+ # Count number of files in the zip
50
+ with zipfile.ZipFile(zip_file, 'r') as zipf:
51
+ num_files = len(zipf.namelist())
52
+ # Get the size of the zip file
53
+ zip_size = os.path.getsize(zip_file)
54
+ # Convert size to a more readable format (e.g., KB, MB)
55
+ if zip_size < 1024:
56
+ size_str = f"{zip_size} B"
57
+ elif zip_size < 1024**2:
58
+ size_str = f"{zip_size / 1024:.2f} KB"
59
+ else:
60
+ size_str = f"{zip_size / 1024**2:.2f} MB"
61
+
62
+ # Create the download link
63
  with open(zip_file, 'rb') as f:
64
  bytes = f.read()
65
  b64 = base64.b64encode(bytes).decode()
66
  link_name = os.path.basename(zip_file)
67
+ href = f'<a href="data:file/zip;base64,{b64}" download="{link_name}">{link_name} - {num_files} files, {size_str}</a>'
68
  return href
69
+
 
70
  @st.cache_resource
71
  def create_zip_of_files(files):
72
  zip_name = "all_files.zip"
 
254
  if st.sidebar.button("⬇️ Download All"):
255
  start_directory = '.' # Current directory
256
  for zip_file in zip_subdirs(start_directory):
257
+ # Display enhanced download link with file count and size
258
  st.sidebar.markdown(get_zip_download_link(zip_file), unsafe_allow_html=True)
259
 
260
  # Expander for showing URL history and download links