📋 个人简介
- 💖 作者简介:大家好,我是阿牛,全栈领域优质创作者。😜
- 📝 个人主页:馆主阿牛🔥
- 🎉 支持我:点赞👍+收藏⭐️+留言📝
- 📣 系列专栏:java 小白到高手的蜕变🍁
- 💬格言:要成为光,因为有怕黑的人!🔥
在做项目的时候,需要实现无刷新上传txt文件(无刷新上传二进制数据我喜欢用ajax),但是当我修改文件内容,点击上传时发现onchang事件第二次上传同名文件不生效,是什么原因导致的呢?
最终发现是ajax上传文件成功后没有清空input文件筐,没错,inut文件筐也是要清除里面的文件的,不然同名文件只能上传一次,不会触发第二次onchange事件!
修改参考代码如下:
<input type="file" id="upload-txt" name="txt" accept=".txt">
// 上传txt文件
$(document).on("change", "#upload-txt", function() {
var file = $(this)[0].files[0];
var formData = new FormData();
formData.append("txt", file);
$.ajax({
url: "/wordcloud/upload-txt",
type: "POST",
data: formData,
processData: false,
contentType: false,
success: function(res) {
if(res.code == -1){
alert(res.msg)
}
if(res.code == 200){
common_ops.alert(res.msg,function(){
$("#txt").val(res.data)
// 清空文件对象,防止更改文件内容后因为同名问题无法再次上传
$("#upload-txt").val("")
})
}
},
});
});