2015-11-18 51 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);