Spaces:
Runtime error
Runtime error
| <html> | |
| <head> | |
| <title>PDF Upload</title> | |
| <style> | |
| :root { | |
| --primary-color: #a0a0a0; | |
| --background-color: #1a1a1a; | |
| --card-background: #2d2d2d; | |
| --text-color: #e0e0e0; | |
| --border-radius: 12px; | |
| --shadow: 0 4px 6px rgba(0, 0, 0, 0.3); | |
| } | |
| body { | |
| font-family: 'Segoe UI', Arial, sans-serif; | |
| max-width: 900px; | |
| margin: 0 auto; | |
| padding: 20px; | |
| background-color: var(--background-color); | |
| color: var(--text-color); | |
| } | |
| .card { | |
| background: var(--card-background); | |
| border-radius: var(--border-radius); | |
| box-shadow: var(--shadow); | |
| padding: 2rem; | |
| margin: 2rem 0; | |
| } | |
| .upload-form { | |
| border: 2px dashed #404040; | |
| padding: 2rem; | |
| text-align: center; | |
| margin: 1.5rem 0; | |
| border-radius: var(--border-radius); | |
| background: #363636; | |
| transition: all 0.3s ease; | |
| } | |
| .upload-form:hover { | |
| border-color: var(--primary-color); | |
| background: #404040; | |
| } | |
| .nav { | |
| background: var(--card-background); | |
| padding: 1rem; | |
| border-radius: var(--border-radius); | |
| box-shadow: var(--shadow); | |
| margin-bottom: 2rem; | |
| } | |
| .nav a { | |
| margin-right: 20px; | |
| text-decoration: none; | |
| color: var(--primary-color); | |
| font-weight: 500; | |
| padding: 0.5rem 1rem; | |
| border-radius: 6px; | |
| transition: all 0.3s ease; | |
| } | |
| .nav a:hover { | |
| background: #363636; | |
| } | |
| h1 { | |
| color: var(--primary-color); | |
| text-align: center; | |
| margin-bottom: 1.5rem; | |
| } | |
| input[type="file"] { | |
| display: none; | |
| } | |
| .file-upload-label { | |
| display: inline-block; | |
| padding: 12px 24px; | |
| background: var(--primary-color); | |
| color: white; | |
| border-radius: 6px; | |
| cursor: pointer; | |
| transition: all 0.3s ease; | |
| } | |
| .file-upload-label:hover { | |
| background: #909090; | |
| } | |
| .selected-file { | |
| margin-top: 1rem; | |
| color: #b0b0b0; | |
| } | |
| button { | |
| background: var(--primary-color); | |
| color: white; | |
| border: none; | |
| padding: 12px 24px; | |
| border-radius: 6px; | |
| cursor: pointer; | |
| font-size: 1rem; | |
| transition: all 0.3s ease; | |
| margin-top: 1rem; | |
| } | |
| button:hover { | |
| background: #909090; | |
| transform: translateY(-2px); | |
| } | |
| .status-message { | |
| margin-top: 1rem; | |
| padding: 1rem; | |
| border-radius: 6px; | |
| text-align: center; | |
| } | |
| .success { | |
| background: #2e4a3d; | |
| color: #7ee2b8; | |
| } | |
| .error { | |
| background: #4a2e2e; | |
| color: #e27e7e; | |
| } | |
| .loading-placeholder { | |
| display: none; | |
| margin-top: 1rem; | |
| color: #b0b0b0; | |
| animation: pulse 1.5s infinite; | |
| } | |
| @keyframes pulse { | |
| 0% { | |
| opacity: 0.6; | |
| } | |
| 50% { | |
| opacity: 1; | |
| } | |
| 100% { | |
| opacity: 0.6; | |
| } | |
| } | |
| </style> | |
| </head> | |
| <body> | |
| <div class="nav"> | |
| <a href="/">Upload</a> | |
| <a href="/chat">Chat</a> | |
| </div> | |
| <div class="card"> | |
| <h1>Upload Documents</h1> | |
| <div class="upload-form"> | |
| <form action="/upload" method="post" enctype="multipart/form-data" id="uploadForm"> | |
| <label for="file-upload" class="file-upload-label"> | |
| Choose PDF Files | |
| </label> | |
| <input id="file-upload" type="file" name="file" accept=".pdf" multiple onchange="updateFileName(this)"> | |
| <div id="selectedFile" class="selected-file"></div> | |
| <div id="loadingPlaceholder" class="loading-placeholder">Processing file...</div> | |
| <button type="submit" onclick="showLoading()">Upload</button> | |
| </form> | |
| </div> | |
| </div> | |
| <script> | |
| function updateFileName(input) { | |
| const fileNames = Array.from(input.files) | |
| .map(file => file.name) | |
| .join(', '); | |
| document.getElementById('selectedFile').textContent = fileNames || 'No file selected'; | |
| } | |
| function showLoading() { | |
| if (document.getElementById('file-upload').files.length > 0) { | |
| document.getElementById('selectedFile').style.display = 'none'; | |
| document.getElementById('loadingPlaceholder').style.display = 'block'; | |
| } | |
| } | |
| </script> | |
| </body> | |
| </html> |