Javascript 如何在上载文件夹时限制文件上载
我允许用户上传文件夹如下Javascript 如何在上载文件夹时限制文件上载,javascript,typescript,Javascript,Typescript,我允许用户上传文件夹如下 <input type="file" (change)="onFileChanged($event)" webkitdirectory directory multiple/> 有没有直接的方法可以做到这一点,或者我需要遍历每个文件,计算总大小并检查其是否超过?是的,从文件输入中,您需要遍历其所有。文件条目: inp.onchange=e=>{ const total_size=[…inp.files].reduc
<input type="file" (change)="onFileChanged($event)" webkitdirectory directory multiple/>
有没有直接的方法可以做到这一点,或者我需要遍历每个文件,计算总大小并检查其是否超过?是的,从文件输入中,您需要遍历其所有
。文件
条目:
inp.onchange=e=>{
const total_size=[…inp.files].reduce((sum,file)=>(sum+file.size),0);
控制台日志(“总尺寸”、“总尺寸”至本地校准(“en US”)、“b”);
};代码>
事件.target.files
将返回。然后可以使用Array.from
和reduce
来获取每个文件的大小。这是用javascript和html编写的。同样的事情也可以在角度上做
函数文件上传(e){
const sz=Array.from(e.target.files).reduce((acc,curr)=>{
返回acc+=当前大小;
}, 0)
console.log(sz)
}
您可以获取文件的总体大小并阻止上载:
onFileChanged(event): void {
const overallSize = event.target.files
.reduce((a, c) => {return (c.size / 1024 / 1024) + a }, 0);
if (overallSize > 1) // 1 Mb
alert('File size exceeds 1 MB');
else {
}
}
因此,如果超过了,您希望阻止所有内容,或者您希望尽可能多地填充内容?如果您还没有这样做:服务器也需要限制它,客户端验证只是为了方便用户。
onFileChanged(event): void {
const overallSize = event.target.files
.reduce((a, c) => {return (c.size / 1024 / 1024) + a }, 0);
if (overallSize > 1) // 1 Mb
alert('File size exceeds 1 MB');
else {
}
}