| import requests |
| import streamlit as st |
| from io import BytesIO |
| import os |
|
|
| PDF_STORAGE_DIR = 'pdf_storage' |
| os.makedirs(PDF_STORAGE_DIR, exist_ok=True) |
|
|
| |
| def download_pdf(url): |
| response = requests.get(url, verify= False) |
| pdf_file_name = url.split('/')[-1] |
| with open(os.path.join(PDF_STORAGE_DIR, pdf_file_name), 'wb+') as destination: |
| for chunk in response.iter_content(1024): |
| destination.write(chunk) |
| return pdf_file_name |
|
|
| |
| def upload_pdf(pdf_file): |
| with open(os.path.join(PDF_STORAGE_DIR, pdf_file.name), 'wb+') as destination: |
| for chunk in pdf_file.chunks(): |
| destination.write(chunk) |
| return pdf_file.name |
|
|
| |
| def delete_pdf(pdf_file_name): |
| os.remove(os.path.join(PDF_STORAGE_DIR, pdf_file_name)) |
| return f"{pdf_file_name} deleted successfully!" |
|
|
| st.title("PDF File Manager") |
|
|
| tab1, tab2, tab3 = st.tabs(["Download PDF", "Upload PDF", "Manage PDFs"]) |
|
|
| with tab1: |
| url = st.text_input("Enter PDF URL") |
| if st.button("Download PDF"): |
| if not url: |
| st.error("Please enter a URL") |
| else: |
| pdf_file_name = download_pdf(url) |
| st.success(f"PDF downloaded: {pdf_file_name}") |
|
|
| with tab2: |
| pdf_files = os.listdir(PDF_STORAGE_DIR) |
| pdf_file_name = st.selectbox("Select PDF file to delete", pdf_files) |
| if st.button("Delete PDF"): |
| output = delete_pdf(pdf_file_name) |
| st.success(output) |
|
|
| with tab3: |
| st.write("# Upload PDF") |
| |
| pdf_file = st.file_uploader("Select PDF file") |
| if pdf_file: |
| pdf_file_name = upload_pdf(pdf_file) |
| st.success(f"PDF uploaded: {pdf_file_name}") |