2020年4月10日 星期五

[JavaScript]上傳檔案時預先確認檔案最後修改日期

     最近工作上遇到的需求,需要確認檔案在Client端時最後修改日期,而不要上傳後在Server端上的檔案日期。

     原本想說應該是做不到,畢竟Submit出去後就變成資料流的概念,應該沒辦法得知原本在Client端的狀態,想不到最後找到可以在上傳前利用JavaScript來抓取檔案修改日期的方法。

方法如下:

HTML部分 放上一個檔案上傳和用來顯示結果的div

<input type="file" id="UpFile">
<div id="Show"></div>


JavaScript部分

<script type="text/JavaScript">
      //在上傳檔案input變化時加入事件
     document.getElementById("UpFile").onchange = function(){ 
          //清空顯示欄位
         document.getElementById("Show").innerHTML= "";
         //取得上傳的檔案陣列
         let FileArray = document.getElementById("UpFile").files;
           
         for(let i=0; i<FileArray.length; i++)
         {
              //lastModified:最後修改日期 自1970年1月1日0:00以來的毫秒數
                //new Date物件將毫秒轉成日期
                let Dy =new Date(FileArray[i].lastModified);
               
//顯示在div上並將日期轉成 YYYY/MM/DD hh:mm
                document.getElementById("Show").innerHTML += '檔案最後修改時間:' +Dy.getFullYear().toString() + "/" + (Dy.getMonth()+1).toString().padStart(2,'0') + "/" + Dy.getDate().toString().padStart(2,'0') + " " + Dy.getHours().toString().padStart(2,'0') + ':' + Dy.getUTCMinutes().toString().padStart(2,'0') + "<br />";
         }
    }
</script>


完成後成品會如下




沒有留言:

張貼留言