【JS】【33】解决 重复上传同一张图片,第二次无反应 的问题
时间: 2023-08-05 12:06:37 浏览: 170
重复上传同一张图片,第二次无反应的问题通常是由于文件选择器的缓存引起的。可以通过以下几种方法解决这个问题:
1. 每次选择文件时,清空文件选择器缓存。可以通过以下代码实现:
```javascript
const fileInput = document.getElementById('fileInput');
fileInput.value = '';
```
2. 在文件选择器上添加一个 `onchange` 事件,每次选择文件时触发该事件,避免文件选择器缓存。可以通过以下代码实现:
```javascript
const fileInput = document.getElementById('fileInput');
fileInput.addEventListener('change', () => {
// 处理文件上传操作
});
```
3. 在上传文件之前,检查文件是否已经上传过。可以通过记录文件的哈希值或者文件名来实现。如果文件已经上传过,则不再进行上传操作。
```javascript
const file = document.getElementById('fileInput').files[0];
const hash = await getHash(file);
if (checkFileExists(hash)) {
alert('文件已经上传过,请勿重复上传!');
return;
}
uploadFile(file);
```
其中,`getHash` 函数可以使用一些库来实现文件哈希值的计算,例如 SparkMD5、CryptoJS 等。`checkFileExists` 函数可以通过 AJAX 请求后端接口来判断文件是否已经上传过。
阅读全文