文件上传 - 在“文件上传”窗口中限制文件类型

时间:2010-09-14 22:06:39

标签: javascript jquery file-upload

我有关于文件上传的问题,我需要限制文件类型,但我喜欢在“文件上传”窗口中执行此操作,因此用户甚至无法看到不允许上传的文件,我喜欢在js或jquery中做。

我知道有可能,例如,uploadify插件可以做到这一点,但出于多种原因我不想使用它。

2 个答案:

答案 0 :(得分:2)

试试此链接。它应该给你你需要的东西。它只是使用直接的javascript,我认为还没有任何JQuery选项。

http://www.codestore.net/store.nsf/unid/DOMM-4Q8H9E

<script type="text/JavaScript">
<!-- Begin
function TestFileType( fileName, fileTypes ) {
if (!fileName) return;

dots = fileName.split(".")
//get the part AFTER the LAST period.
fileType = "." + dots[dots.length-1];

return (fileTypes.join(".").indexOf(fileType) != -1) ?
alert('That file is OK!') : 
alert("Please only upload files that end in types: \n\n" + (fileTypes.join(" .")) + "\n\nPlease select a new file and try again.");
}
// -->
</script>

我已使用发布链接中的实际代码更新了此答案。正如海报所说,这不是解决这个问题的“安全”方法。由于这是客户端javascript,因此可以使用Web开发工具轻松更改文件的扩展名。始终检查服务器端上传的文件,以防止上传恶意文件。

答案 1 :(得分:0)

据我所知,我们可以如下所示,但对话框仍包含所有文件类型:

<input type="file" name="pic" id="pic" accept="image/gif, image/jpeg" />

但是,您可以使用Jquery / Javascript限制错误类型的文件上传,我想在通过检查扩展名将文件发送到服务器之前。