Files
file-upload/static/index.html.tpl
T
2026-08-27 19:35:30 +08:00

69 lines
2.3 KiB
Smarty

<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>临时文件上传 · TTL 24h</title>
<style>
/*EMBED_CSS*/</style>
</head>
<body>
<div class="container">
<header>
<h1>临时文件传输<span class="badge">TTL 24h</span></h1>
<div class="subtitle">上传后 24 小时内有效 · 被下载会自动续期 · 自动清理</div>
</header>
<div class="card">
<div class="dropzone" id="dropzone" tabindex="0" role="button" aria-label="选择或拖拽文件上传">
<div class="icon">⬆</div>
<div><strong>点击选择文件</strong> 或将文件拖拽到此处</div>
<div class="hint">支持多文件 · 受配额限制</div>
</div>
<input type="file" id="fileInput" multiple hidden />
<div class="progress-list" id="progressList"></div>
<div class="btn-row" id="actionRow" style="display:none">
<div class="total-progress" id="totalProgress" style="display:none"><div></div></div>
<span class="total-label" id="totalLabel" style="display:none"></span>
<button class="btn" id="uploadBtn">开始上传</button>
<button class="btn ghost" id="clearBtn">清空</button>
</div>
</div>
<div class="card">
<div class="files-header">
<h2>文件列表</h2>
<div class="files-header-right">
<label class="check-all-wrap" id="checkAllWrap" style="display:none">
<input type="checkbox" id="checkAll" />
<span>全选</span>
</label>
<span class="meta" id="filesMeta">加载中...</span>
<button class="btn ghost batch-btn" id="batchBtn" style="display:none">批量下载 (<span id="batchCount">0</span>)</button>
</div>
</div>
<div class="quota-wrap" id="quotaWrap" style="display:none">
<div class="quota-row">
<span class="quota-text" id="quotaText">--</span>
<span id="quotaPercent">--</span>
</div>
<div class="quota-bar" id="quotaBar"><div></div></div>
</div>
<div id="filesList">
<div class="skeleton"></div>
<div class="skeleton"></div>
</div>
</div>
<footer>每个文件 TTL 默认 24 小时, 后台每小时扫描清理 · 每次下载会重置过期时间</footer>
</div>
<div class="toast" id="toast"></div>
<script>
/*EMBED_JS*/</script>
</body>
</html>