使用JavaScript限制上传文件大小和类型

需积分: 10 1 下载量 193 浏览量 更新于2024-09-16 收藏 3KB TXT 举报
本文档介绍了如何使用JavaScript在网页上控制用户上传文件的大小和类型。通过JavaScript,我们可以实现对用户选择的文件进行实时验证,确保它们符合我们设定的限制条件。 在HTML部分,可以看到一个简单的表单,包含一个用于选择文件的`<input type="file">`元素和一个提交按钮。表单提交时会触发`onsubmit`事件,这个事件被设置为调用`CheckFileSize()`函数,以检查选定文件的大小和类型。 `CheckFileSize()`函数是关键部分,它首先获取用户选择的文件名,然后创建一个新的`Image`对象,并将其`src`属性设置为所选文件的路径。这允许浏览器预加载图像,从而可以访问到文件的一些元数据,如高度、宽度以及在IE中可用的`fileSize`属性。函数通过弹出警告框显示这些信息,并返回`false`来阻止表单的默认提交行为,除非文件大小满足指定的限制。 在提供的代码片段中,可以看到一个输入框让用户设定文件大小的限制(以KB为单位),以及一个实际的文件选择输入框,当用户选择文件后,`onchange`事件会触发`changeSrc()`函数。这个函数将文件选择器的值赋给图片元素`fileChecker`的`src`属性,这样浏览器就会尝试加载所选文件。然后,我们监听`fileChecker`的`onreadystatechange`事件,当图片加载完成(即`readyState`为"complete")时,调用`checkSize()`函数来检查文件大小。 `checkSize()`函数是缺失的,但根据上下文,它应该会检查`fileChecker`的大小是否超过用户在输入框中设定的限制,如果超过,则可以显示错误信息或阻止上传。 这段代码提供了一个基础的JavaScript文件上传验证机制,用于确保用户上传的文件不会过大,且适用于图片文件。然而,它没有处理非图片文件类型的验证,也没有考虑现代浏览器的跨域安全策略,因此在实际应用中可能需要进一步扩展和完善。例如,可以使用`FileReader API`来获取文件的类型和大小,或者使用`accept`属性限制可选择的文件类型。