用html编写一个静态页面 实现以下功能:①同时上传多个pdf或者doc或者docx文件②可以预览上传的文件内容③可以下载上传的文件
时间: 2024-03-21 15:41:32 浏览: 97
使用HTML实现一个静态页面(含源码)
5星 · 资源好评率100%
以下是一个简单的 HTML 页面,实现了上传多个 PDF、DOC 或 DOCX 文件,预览文件和下载文件的功能:
```html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>多文件上传和下载示例</title>
</head>
<body>
<h1>多文件上传和下载示例</h1>
<form>
<input type="file" id="fileInput" name="files[]" multiple accept=".pdf,.doc,.docx">
<button type="button" onclick="previewFiles()">预览文件</button>
<button type="button" onclick="downloadFiles()">下载文件</button>
</form>
<hr>
<h2>文件预览区域</h2>
<div id="filePreview"></div>
<script>
// 预览文件
function previewFiles() {
const fileInput = document.getElementById('fileInput');
const files = fileInput.files;
const filePreview = document.getElementById('filePreview');
filePreview.innerHTML = '';
for (let i = 0; i < files.length; i++) {
const file = files[i];
if (file) {
const reader = new FileReader();
reader.onload = function(e) {
const preview = document.createElement('div');
const fileName = document.createElement('h3');
fileName.innerText = file.name;
const fileContent = document.createElement('pre');
fileContent.innerText = e.target.result;
preview.appendChild(fileName);
preview.appendChild(fileContent);
filePreview.appendChild(preview);
}
reader.readAsText(file);
}
}
}
// 下载文件
function downloadFiles() {
const fileInput = document.getElementById('fileInput');
const files = fileInput.files;
for (let i = 0; i < files.length; i++) {
const file = files[i];
if (file) {
const link = document.createElement('a');
link.href = window.URL.createObjectURL(file);
link.download = file.name;
document.body.appendChild(link);
link.click();
document.body.removeChild(link);
}
}
}
</script>
</body>
</html>
```
在上面的代码中,我们首先创建了一个表单,其中包含一个用于上传多个文件的 input 元素和两个用于预览和下载文件的按钮。当用户选择了文件后,可以通过 JavaScript 来获取文件对象数组,并且使用 FileReader 对象来读取每个文件的内容并在预览区域显示。当用户点击下载文件按钮时,我们可以通过 URL.createObjectURL 方法来生成一个下载链接,并且设置 download 属性来指定文件名,然后通过创建一个虚拟的 a 元素,模拟用户点击下载链接的操作。这里需要注意的是,由于我们使用了 multiple 属性,所以上传的文件数组可以通过 name 属性来获取。同时,我们也限制了文件的类型,只允许上传 PDF、DOC 或 DOCX 文件。
阅读全文