Javascript 如何检查Angular JS中上传文件的类型?
我在AngularJS中使用库。这里有Javascript 如何检查Angular JS中上传文件的类型?,javascript,angularjs,Javascript,Angularjs,我在AngularJS中使用库。这里有过滤器,可以将文件类型设置为上传。 我是这样做的: uploader.filters.push({ name: 'imageFilter', fn: function (item /*{File|FileLikeObject}*/, options) { var type = '|' + item.type.slice(item.type.lastIndexOf('/') + 1) + '|'; return '|d
过滤器
,可以将文件类型设置为上传。
我是这样做的:
uploader.filters.push({
name: 'imageFilter',
fn: function (item /*{File|FileLikeObject}*/, options) {
var type = '|' + item.type.slice(item.type.lastIndexOf('/') + 1) + '|';
return '|doc|txt|docx|xml|pdf|djvu'.indexOf(type) !== -1;
}
});
问题是,用户可以更改扩展文件,例如将*.exe
更改为*.pdf
,然后Angular uploader将文件添加到队列上载
以及如何在模板中显示信息,PDF和txt文件在哪里?您已经确定了将文件上载到服务器的主要问题之一(恭喜!) 除了开玩笑和轻率,我还没有听说过在上传之前使用AngularJS验证文件的优雅或可靠的方法(正如您所知,AngularJS受到JavaScript本机提供的API的限制,因为AngularJS是一个JavaScript框架) 正如所指出的,您可以在上传之前检查客户端上文件的MIME类型 但是,由于许多原因,检查客户端上的文件存在限制,包括:
依靠服务器(而不是客户端)检查文件的好处是您只受到服务器可以使用的API(客户端用户无法控制)的限制。没有真正的方法在客户端验证文件,因为用户可以通过禁用JavaScript轻松“欺骗”系统,从输入中删除
accept
属性,等等。您可以提出什么建议?我将使用PHP后端文件验证(),并让accept
属性仅接受您想要的文件类型()。人们仍然(自愿)使用PHP吗?