import gradio as gr import os # Directory where PDFs will be saved UPLOAD_FOLDER = 'uploads' os.makedirs(UPLOAD_FOLDER, exist_ok=True) # Function to list uploaded PDFs def list_pdfs(): files = os.listdir(UPLOAD_FOLDER) pdf_list = [f'{file}' for file in files] return '
'.join(pdf_list) # Function to handle PDF upload def upload_pdf(pdf_file): if pdf_file: file_name = pdf_file.name pdf_file.save(os.path.join(UPLOAD_FOLDER, file_name)) return list_pdfs() return "No file uploaded." # Gradio Interface with gr.Blocks() as demo: with gr.Column(): gr.Markdown("# PDF Catalog") pdf_list = gr.HTML(list_pdfs) pdf_upload = gr.File(label="Upload PDF", file_types=[".pdf"]) upload_btn = gr.Button("Upload") pdf_viewer = gr.HTML("") upload_btn.click(upload_pdf, inputs=pdf_upload, outputs=pdf_list) # Custom JS to view PDF in iframe js = """ """ pdf_list.update(js) # Run the app demo.launch()