我正在使用Kendo上传器将文件上传到我的应用程序中。我已确保只允许在配置中定义的扩展名被上传或显示错误消息。我的代码看起来像这样
var validExtensions = [".pdf", ".doc", ".docx", ".pptx", ".xls", ".xlsx", ".txt"];
$('#uploader').kendoUpload({
multiple: false,
select: function (e) {
if (validExtensions.indexOf(e.files[0].extension.toLowerCase()) <= -1) {
alert("File type not allowed!");
e.preventDefault();
return false;
}
}
});
这可以很好地接受仅具有给定扩展名的文件。但是安全团队提出了一个问题,他们正在评估避免上传具有多个扩展名的文件(例如fileName.msi.txt
或fileName.exe.doc
)。
我知道我们可以基于进行拆分。并进行评估,但我想知道是否有更清洁的方法来实现这一目标?
谢谢
答案 0 :(得分:1)
不幸的是,您不能仅根据文件名来确定有效文件。文件名可以随心所欲地命名,因此没有可以快速重命名的过滤功能。
但是,如果您使用的是HTML 5,则可以access the MIME type的所选<input type="file">
元素。
例如:
<input type="file" onchange="handleFiles(this.files)">
<script>
function handleFiles(files) {
var selectedFile = files[0];
console.log(
"The selected file has the name "
+ selectedFile.name
+ " and is of the type "
+ selectedFile.type + "."
);
}
</script>
它不能识别列表中的所有内容,但是您可以确保PDF和.txt文件就是它们所说的。