form 上传多个file文件 判断文件重复
时间: 2024-09-15 19:08:37 浏览: 45
当你需要在一个HTML表单里让用户上传多个文件,并检查这些文件是否已经存在服务器上,可以采取以下步骤:
1. **获取文件数据**:在JavaScript中,你可以使用`FormData`对象来处理文件上传。用户选择文件后,这个对象会自动添加这些文件。
```javascript
let formData = new FormData();
for (let i = 0; i < document.getElementById('file-input').files.length; i++) {
formData.append('files[]', document.getElementById('file-input').files[i]);
}
```
这里假设有一个id为`file-input`的input元素用于文件选择。
2. **发送请求**:将`FormData`作为数据发送到服务器端,比如通过`XMLHttpRequest`或者axios等库。
3. **服务器端验证**:在服务器端(如Node.js、PHP或Python),接收到文件后,需要读取文件内容并存储在数据库中。如果你想要检查文件是否存在,可以在接收文件的同时对已存在的文件进行对比。
4. **对比文件内容**:通常比较文件内容的完整性和MD5哈希值,如果新上传的文件内容与数据库中已有记录的文件一致,则视为重复。
5. **返回响应**:服务器返回一个状态(比如HTTP状态码409 Conflict表示冲突)和反馈消息给客户端,告诉用户哪些文件已经被其他文件覆盖。
```javascript
fetch('/upload', {
method: 'POST',
body: formData,
}).then(response => {
if (!response.ok) {
console.error('Duplicate files detected:', response.status);
}
});
```
阅读全文