JavaScript判斷檔案是否存在的例項程式碼
阿新 • • 發佈:2021-05-12
一、業務場景
最近一直在做和檔案上傳和下載相關的開發,在涉及到下載的時候,我使用如下的方法進行下載
//獲取或者賦值一個下載路徑 let downUrl; //採用如下的方式可以直接下載檔案 window.location.href = downUrl;
業務問題:如果這http://www.cppcns.com個檔案不存在,會出現頁面跳轉的情況;
比如:1、剛好檔案儲存伺服器掛機了 2、或者剛好檔案儲存伺服器上的檔案被人刪除了
如上的不正常訪問都會導致下載功能出現問題,對使用者來說不友好的是出現頁面跳轉的情況
這裡如果我們在下載的時候知道檔案是否存在就可以很好的解決這個問題了
二、解決方案
提供兩種解決思路
1.後端解決:一般檔案儲存在檔案儲存伺服器是有一個專門的key,看看能否單獨有一個查詢檔案是否存在的介面,即下載前根據檔案的唯一key查詢一下檔案是否存在,如果存在則執行下載的語句,如果不存在,給出使用者對應的提示
if(){ //如果檔案存在下載 }else{ //否則給出對應的提示 }
2.前端解決:前端方法判斷檔案流是否存在
我給出的是vue裡面方法的寫法,供實踐參考
/** * 判斷服務的檔案是否存在 * @param filepath 檔案地址 * @param filenahttp://www.cppcns.comme * @returns {Boolean} */ isExistFile(filepath,filename){ if(filepath == null || filename == null || filepath === "" || filename ===""){ return false } var xmlhttp; if (window.XMLHttpRequest){程式設計客棧 xmlhttp=new XMLHttpwww.cppcns.comRequest(); }else{ 程式設計客棧 xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); } xmlhttp.open("GET",filepath,false); xmlhttp.send(); if(xmlhttp.readyState === 4){ if(xmlhttp.status === 200) return true; //url存在 else if(xmlhttp.status === 404) return false; //url不存在 else return false;//其他狀態 } }
後續邏輯可以自行補充,如上可以測試出檔案流是否存在,如果存在我們進行下載,如果不存在那麼給出對應的提示,這樣就解決了檔案路徑不存在跳轉到空白頁面的情況
補充:“流”是一個抽象的概念,它是對輸入輸出裝置的一種抽象理解,在java中,對資料的輸入輸出操作都是以“流”的方式進行的。
總結:
我們遇到業務問題可以從前後端兩個角度思考,學習分享獲取新知,希望有更多的進步 ……
到此這篇關於javascript判斷檔案是否存在的文章就介紹到這了,更多相關JavaScript判斷檔案存在內容請搜尋我們以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援我們!