2015-11-18 74 views
1

我剛進入JavaScript,所以如果我的代碼不是最乾淨的,我很抱歉。使用JavaScript確定上傳文件時的文件類型

我想弄清楚如何讓Javascript來識別文件擴展名,以便它可以適當地採取行動。鑑於下面的代碼,我的腳本允許PDF,docx和doc文件,但它拒絕頁面文檔。我不確定爲什麼。

var ext = $('#resume').val().split('.').pop().toLowerCase(); 

// Reject file if it is not one of the specified filetypes 
if ($.inArray(ext, ['pdf','pages','docx','doc']) == -1) { 
    error.innerHTML = "<span class=\"red\">The file you selected does not meet document type requirements.<br>We can only accept pdf, pages, docx, and doc documents.</span>"; 
    return false; 
} 
+0

Pages的文件擴展名可能不同。它可能根本不是一個文件(而是一個包/目錄)。它最近已經徹底改變了,所以它可能取決於Pages版本。蘋果的東西有點棘手。 – Thilo

+0

什麼是頁面文檔的完整文件名?如果文件名包含多個'。'會怎麼樣?爲了防止數組中的第一個項目彈出(第一個項目),分割後數組的最後一個索引如何,以防萬一? –

+0

你能描述一下什麼樣的「頁面文件」 –

回答

0

所以我想通了,爲什麼它不接受的網頁文件,因爲它們被僞裝成ZIP文件。另外,我修改了我的代碼以更好地捕獲擴展。這裏是我用過的

var fileName = document.getElementById("resume").value; 
var ext = fileName.substr((fileName.lastIndexOf('.') + 1)); 

if (ext != "pdf" && ext != "pages" && ext != "docx" && ext != "doc" && ext != "zip") { // Reject file if it is not one of the specified filetypes 
return false; 
} 
0
var fileName = $('#resume').val(); 
var ext = fileName.substr(fileName.lastIndexOf("."), fileName.length);