2010-05-29 46 views
3

我想限制文件上传控件仅允许PDF文件。我想为此使用JavaScript。通过JavaScript进行文件上传验证

我想在文件上传事件中应用该JavaScript。

+0

所有可行的,但不要忘了在服务器端验证,因为JS可以被禁用/欺骗。 – BalusC 2010-05-29 13:46:18

回答

5

您可以在提交时检查文件名。

"hook to the <form>'s onsubmit with whatever method" { 
    filename = theFileElement.value; 
    if (!/\.pdf$/i.test(filename)) { 
    alert("error"); 
    return false; 
    } 
    return true; 
} 

请注意,这只会检查文件的扩展名是否为.pdf。它(并不能)检查该文件是否真的只是PDF或实际上是一个讨厌的病毒。而且,客户端Javascript可以轻松绕过,因此您应该在服务器端再次执行检查。

+0

Firefox的现代版本(也可能是WebKit浏览器)中有一些API允许对文件进行一些检查。 https://developer.mozilla.org/en/Using_files_from_web_applications – Pointy 2010-05-29 14:27:02

+0

@Pointy:是的,但是你不能拒绝用户使用IE。 – kennytm 2010-05-29 14:47:17

+0

当然;关键是客户端并不是绝对不可能检查正在上传的文件,并且最终IE甚至可以拥有这种能力。 (当然,我们当然可能已经很久了) – Pointy 2010-05-29 14:59:02

1
var ext = fname.split("."); 
var x=ext.length; 
if(ext[x-1] == 'pdf'){ 
    alert("Please upload doc file"); 
    document.form.fname.focus(); 
    return false; 
}