在Web开发中,文件上传是一个常见需求。本文将介绍如何通过HTML、JavaScript实现安全、有效的DOC文档上传功能,适用于简历投递、文档提交等场景。
1. 基础HTML表单
使用标准的HTML表单来创建文件上传功能,确保设置正确的enctype类型。
<form id="uploadForm" action="/upload" method="POST" enctype="multipart/form-data">
<label for="docFile">选择DOC文件:</label>
<input type="file" id="docFile" name="docFile" accept=".doc,.docx" required />
<button type="submit">上传文件</button>
</form>
2. JavaScript客户端验证
在提交前检查文件类型和大小,提升用户体验并减少无效请求。
<script>
document.getElementById('uploadForm').onsubmit = function(e) {
const fileInput = document.getElementById('docFile');
const file = fileInput.files[0];
if (file) {
// 检查文件类型
const validTypes = ['application/msword',
'application/vnd.openxmlformats-officedocument.wordprocessingml.document'];
if (!validTypes.includes(file.type)) {
alert('请上传有效的DOC或DOCX文件!');
e.preventDefault();
}
// 检查文件大小(限制5MB)
if (file.size > 5 * 1024 * 1024) {
alert('文件大小不能超过5MB!');
e.preventDefault();
}
}
};
</script>
3. 显示文件信息
用户选择文件后,动态显示文件名和大小。
<input type="file" id="docFile" name="docFile" accept=".doc,.docx" />
<div id="fileInfo"></div>
<script>
document.getElementById('docFile').onchange = function() {
const file = this.files[0];
if (file) {
const infoDiv = document.getElementById('fileInfo');
infoDiv.innerHTML = `已选择: ${file.name} (${(file.size / 1024).toFixed(2)} KB)`;
infoDiv.style.display = 'block';
}
};
</script>
4. 安全建议
文件上传涉及安全风险,需注意:
- 服务端必须再次验证文件类型和内容
- 限制上传目录权限,避免执行脚本
- 对上传文件重命名,防止路径遍历攻击
- 使用HTTPS传输敏感文件
提示:本文仅展示前端实现,实际项目需配合后端(如Node.js、PHP、Python等)处理文件存储。