您好,登錄后才能下訂單哦!
小編給大家分享一下JavaScript如何判斷文件是否存在,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!
1、js屬于一種解釋性腳本語言;2、在絕大多數瀏覽器的支持下,js可以在多種平臺下運行,擁有著跨平臺特性;3、js屬于一種弱類型腳本語言,對使用的數據類型未做出嚴格的要求,能夠進行類型轉換,簡單又容易上手;4、js語言安全性高,只能通過瀏覽器實現信息瀏覽或動態交互,從而有效地防止數據的丟失;5、基于對象的腳本語言,js不僅可以創建對象,也能使用現有的對象。
最近一直在做和文件上傳和下載相關的開發,在涉及到下載的時候,我使用如下的方法進行下載
//獲取或者賦值一個下載路徑 let downUrl; //采用如下的方式可以直接下載文件 window.location.href = downUrl;
業務問題:如果這個文件不存在,會出現頁面跳轉的情況;
比如:1、剛好文件存儲服務器掛機了 2、或者剛好文件存儲服務器上的文件被人刪除了
如上的不正常訪問都會導致下載功能出現問題,對用戶來說不友好的是出現頁面跳轉的情況
這里如果我們在下載的時候知道文件是否存在就可以很好的解決這個問題了
提供兩種解決思路
1.后端解決:一般文件存儲在文件存儲服務器是有一個專門的key,看看能否單獨有一個查詢文件是否存在的接口,即下載前根據文件的唯一key查詢一下文件是否存在,如果存在則執行下載的語句,如果不存在,給出用戶對應的提示
if(){ //如果文件存在下載 }else{ //否則給出對應的提示 }
2.前端解決:前端方法判斷文件流是否存在
我給出的是vue里面方法的寫法,供實踐參考
/** * 判斷服務的文件是否存在 * @param filepath 文件地址 * @param filename * @returns {Boolean} */ isExistFile(filepath, filename){ if(filepath == null || filename == null || filepath === "" || filename ===""){ return false } var xmlhttp; if (window.XMLHttpRequest){ xmlhttp=new XMLHttpRequest(); }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如何判斷文件是否存在”有了一定的了解,如果想了解更多相關知識,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。