是否可以在HTML上传期间使用Javascript检测文件扩展名更改

时间:2016-10-27 09:04:35

标签: javascript html file-upload

我有一个假设的问题。我目前在我的应用程序中使用 AngularJS ,我正在使用第三方模块 ng-file-upload 进行文件上传。现在显然我可以检查上传文件的文件扩展名并将其排除/防止它被发送到服务器,如果不合需要,例如我只希望允许上传图像并且用户上传word文档。不过我在想。恶意用户是否应该更改文件" nastyfile.exe"到" nastyfile.gif"恶意文件将使用File.type属性通过我的检查/验证,因为File.type将是image/gif。据我所知,前端无法检查是否使用JavaScript修改了原始文件扩展名。是这种情况还是有办法确定这个?

提前致谢。

1 个答案:

答案 0 :(得分:0)

尝试创建图像。 然后听error & load event如果load触发,它就是图像,否则如果error触发它不是图像;)

var img = new Image();

img.onerror = function() { /* not an image */ }
img.onload = function() { /* it is an image */ }

img.src = 'PATH/FILENAME';