2010-05-29 4 views
3

Я хочу ограничить контроль загрузки файлов, чтобы разрешить только файлы PDF. Я хочу использовать JavaScript для этого.Проверка загрузки файлов с помощью JavaScript

Я хочу применить этот JavaScript в событии загрузки файла.

+0

Все можно сделать, но не забудьте также проверить на стороне сервера, так как JS можно отключить/подделать. – BalusC

ответ

5

Вы можете проверить имя файла на submit.

"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

+0

@Pointy: Верно, но вы не можете запрещать пользователям использовать IE. – kennytm

+0

Конечно; Дело в том, что для клиента не совсем невозможно проверить загружаемые файлы, и в конечном итоге даже IE будет иметь эту способность. (Конечно, мы можем быть давно мертвы.) – Pointy

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; 
}