AdrienB134's picture
Upload 54 files
7fdb8e9 verified
<!DOCTYPE html>
<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>