Spaces:
Runtime error
Runtime error
File size: 1,304 Bytes
9dc403e 5f8ac38 9dc403e 5f8ac38 9dc403e 5f8ac38 9dc403e |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
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'<a href="javascript:view_pdf(\'{file}\')">{file}</a>' for file in files]
return '<br>'.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("<iframe id='pdf_viewer' style='width:100%; height:500px;'></iframe>")
upload_btn.click(upload_pdf, inputs=pdf_upload, outputs=pdf_list)
# Custom JS to view PDF in iframe
js = """
<script>
function view_pdf(file) {
const viewer = document.getElementById('pdf_viewer');
viewer.src = `/file=uploads/${file}`;
}
</script>
"""
pdf_list.update(js)
# Run the app
demo.launch()
|