已解决js中onchange事件无刷新上传同名文件只能上传一次的问题
warning:
这篇文章距离上次修改已过202天,其中的内容可能已经有所变动。
在JavaScript中,如果你遇到了onchange
事件用于文件上传时无刷新同名文件只能上传一次的问题,可能是因为浏览器缓存了文件的选择结果。解决这个问题的一个常见方法是在每次上传后更改输入元素的value
属性,强制用户选择文件。
以下是一个简单的示例代码,展示了如何在文件上传后清空文件输入的值,以便允许用户上传同名文件:
// 假设你有一个文件输入元素,其id为"fileInput"
document.getElementById('fileInput').addEventListener('change', function() {
var fileInput = this;
// 创建一个新的FormData,并通过AJAX上传文件
var formData = new FormData();
formData.append('file', fileInput.files[0]);
var xhr = new XMLHttpRequest();
xhr.open('POST', '/upload', true);
xhr.onload = function() {
if (this.status == 200) {
// 文件上传成功后,清空文件输入的值
fileInput.value = '';
}
};
xhr.send(formData);
});
在这个例子中,当文件上传完成并且收到了服务器的成功响应后,通过将文件输入的value
属性设置为空字符串,可以强制用户在下次选择同名文件时触发change
事件。这样,同名文件就可以被再次上传而无需刷新页面。
评论已关闭