遇到的問題:上傳文件時,第一次選中文件后點擊確定,文件被選中,第二次再點擊后不選文件,點擊取消,上一次被選中的文件消失了,我們要的效果是第二次點擊取消時上一次選擇的文件依舊存在。
首先取消事件我們是可以監聽到的,
if(!document.getElementById("file1").files[0]){
//此時未選擇文件點擊了取消事件
}
file選擇文件后,獲取到的值是:document.getElementById("file1").files[0]上傳到文件用戶所選擇的文件都存儲在了一個FileList對象上,其中每個文件都對應了一個File對象
file對象一共由9個屬性
獲取上次修改的時間file[0].lastModifiedDate)
獲取文件名file[0].name
獲取大小file[0].size
獲取類型file[0].type
所以在沒有選擇文件時,沒有辦法強制給document.getElementById("file1").files[0]賦值 。
解決辦法:新定義一個變量,將第一次所選擇的文件的file[0].name存儲起來,顯示在頁面。當不選擇文件點擊取消時不做處理,當重新選擇文件時,重新給變量賦值就好。
if(!document.getElementById("file1").files[0]){
return;
}else{
this.newAdvertisement.file1 = String(document.getElementById("file1").files[0].name);
document.getElementById("file1").style.opacity = 0 ;
this.firstUpMusic = document.getElementById("file1").files[0];
}
this.$forceUpdate();
如果vue項目記得強制刷新路由。