多文件上传时如何限制单个文件大小?
在做项目时遇到个问题,用户上传多个文件时,怎么限制每个文件不能超过5MB?我试过给input加accept属性和multiple,但好像对文件大小没用。
我的代码是这样的:
然后用JS处理:
function handleFiles(e) {
const files = e.target.files;
// 这里该怎么判断每个文件的大小?
// 直接用files[i].size好像可以,但不确定是否兼容所有浏览器
}
但用户如果选了超过大小的文件,怎么及时拦截?直接提交的话后端会报错,想在前端先拦截提示。有没有更好的实现方式?
input的files属性遍历判断每个文件的size,超过限制就提示并阻止提交,兼容性没问题,主流浏览器都支持。JS 这么写就行:
files[i].size是标准属性,现代浏览器都支持。如果用户选了超大的文件,直接弹框提示并清空选择就行。代码放这了,拷走就能用。记得测试一下兼容性,虽然基本没问题。