使用JS验证图片格式、大小并实现预览的实例详解

0 下载量 19 浏览量 更新于2024-09-01 收藏 61KB PDF 举报
在JavaScript中,验证上传图片的格式和大小是一项常见的功能,特别是在用户上传头像或者上传文件时。这篇文章提供了一个简单的实例,展示了如何在前端进行这项操作。主要关注点是`photoCheck`函数,它接收一个名为`obj`的对象,通常在HTML表单提交时,`obj.files`包含了用户选择的文件。 首先,函数会检查`photoSrc`输入字段是否为空。如果为空,函数直接返回,表示验证未通过。如果非空,`photo_flag`变量被设置为`true`,表示初步认为图片有效。 接下来,定义了几个变量:`fSize`(文件大小的阈值,这里是50.9KB),`fileType`用于存储文件类型,`fileSize`用于存储实际文件大小,以及`filePath`保存图片路径。在现代浏览器(如Chrome、Firefox和Webkit支持)中,`obj.files`存在,可以通过FileReader API读取文件内容。 `FileReader`对象被用来读取文件,通过`.readAsDataURL(thisFile)`将文件转换为Data URL。当读取完成后,`onloadend`事件触发,这里创建一个新的`imgObj`,设置其`src`属性为处理后的Data URL。然后,通过检查`imgObj.onload`事件,确认图片加载完成,并根据`photo_flag`状态决定是否显示图片。 在IE浏览器中,由于不支持`files`属性,作者采取了不同的方法。通过`select`方法选择文件,然后获取`document.selection.createRange().text`,这是IE特有的获取选定文件路径的方式。接着,创建一个新的`img`对象,设置其`src`为路径,通过判断`img.readyState`为"complete"来确认图片已加载。同样,根据`photo_flag`来决定是否显示图片或使用默认头像。 这个示例演示了如何使用JavaScript对上传的图片进行格式和大小的验证,同时提供了兼容不同浏览器的方法。这对于前端开发者处理用户上传文件的需求非常实用,能够确保用户体验和数据的安全性。