所以,我要做的是在發送到服務器端(PHP)的其他驗證之前使用javascript/jquery驗證文件擴展名。Javascript擴展驗證
我知道在這裏有很多來源,但是,我試圖以我自己的方式。
我到達一個簡單的IDEIA,像上面的代碼:
// remove all elements to take only the file name
var fileName = $('input[type=file]').val().split('\\').pop().toLowerCase();
validExtension = ['.jpg', '.png', '.gif','.jpeg']; // list of valid extensions
$.each(validExtension, function (e, val) { // run thru all valid extensions
if (fileName.indexOf(val) !== -1) { // if found a valid one, stop validation.
invalidExt = false;
return false;
} else { // else, error true...
invalidExt = true;
}
});
if (invalidExt) {
alert('error');
}else{
alert('success');
}
的問題是,如果文件有.jpg
或類似desert.jpg.exe
名稱的中間任何其他有效的擴展,驗證將通過通。那麼,我該如何解決這個問題?
也許找到一種方法來獲取文件名的最後一個擴展名?
當然,任何提示,做我的客人。
謝謝。
不錯的一個,你爲什麼要設置爲+1? –
''a.b'.lastIndexOf('。')== 1'; ''a.b'.substr(1)=='.b''。添加1可以消除這個時間段。 – josh3736