我正在使用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
(。
我知道我们可以根据。并进行评估,但我想知道,以防我们有更清洁的方法来实现这一点?
感谢
很遗憾,不能仅根据文件名来确定有效文件。文件名可以随意命名,因此没有快速重命名无法绕过的过滤。
如果您使用的是HTML5,则可以访问所选<input type="file">
元素的MIME类型。
例如:
<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文件是他们所说的。