这里有新鲜出炉的 Javascript 教程,程序狗速度看过来!
Javascript 是一种由 Netscape 的 LiveScript 发展而来的原型化继承的基于对象的动态类型的区分大小写的客户端脚本语言,主要目的是为了解决服务器端语言,比如 Perl,遗留的速度问题,为客户提供更流畅的浏览效果。
下面小编就为大家带来一篇真正好用的 js 验证上传文件大小的简单方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
最近使用到一个文件上传功能,发现恶意上传一个 2G 文件时,后台处理响应较慢,遂想到能否使用 js 来进行客户端的验证。但查阅网上多处资料,均使用 ActiveXObject("Scripting.FileSystemObject"); 的方法,该方法需要将 Internet 选项中安全级别提高,启用一个系统本身不推荐的选项,会出现如下非常不友好的提示:
所以这边并没有用到,而是寻求其他方法。
这边新的思路是 img 标签中的 dynsrc 属性。
在 FireFox、Chrome 浏览器中可以根据 document.getElementById("id_file").files[0].size 获取上传文件的大小(字节数),而 IE 浏览器中不支持该属性,只能借助 <img> 标签的 dynsrc 属性,来间接实现获取文件的大小(但需要同意 ActiveX 控件的运行,但是不会引起上面的不友好、不安全的提示)。
具体方法如下:
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
- <html xmlns="http://www.w3.org/1999/xhtml">
- <head>
- <meta name="DEscription" contect="my code demo" />
- <meta name="Author" contect="Michael@www.micmiu.com" />
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
- <title>
- js check file size @ www.micmiu.com
- </title>
- </head>
- <body>
- <img id="tempimg" dynsrc="" src="" style="display:none" />
- <input type="file" name="file" id="fileuploade" size="40" />
- <input type="button" name="check" value="checkfilesize" onclick="checkfile()"
- />
- </body>
- <script type="text/javascript">
- var maxsize = 2 * 1024 * 1024; //2M
- var errMsg = "上传的附件文件不能超过2M!!!";
- var tipMsg = "您的浏览器暂不支持计算上传文件的大小,确保上传文件不要超过2M,建议使用IE、FireFox、Chrome浏览器。";
- var browserCfg = {};
- var ua = window.navigator.userAgent;
- if (ua.indexOf("MSIE") >= 1) {
- browserCfg.ie = true;
- } else if (ua.indexOf("Firefox") >= 1) {
- browserCfg.firefox = true;
- } else if (ua.indexOf("Chrome") >= 1) {
- browserCfg.chrome = true;
- }
- function checkfile() {
- try {
- var obj_file = document.getElementById("fileuploade");
- if (obj_file.value == "") {
- alert("请先选择上传文件");
- return;
- }
- var filesize = 0;
- if (browserCfg.firefox || browserCfg.chrome) {
- filesize = obj_file.files[0].size;
- } else if (browserCfg.ie) {
- var obj_img = document.getElementById('tempimg');
- obj_img.dynsrc = obj_file.value;
- filesize = obj_img.fileSize;
- } else {
- alert(tipMsg);
- return;
- }
- if (filesize == -1) {
- alert(tipMsg);
- return;
- } else if (filesize > maxsize) {
- alert(errMsg);
- return;
- } else {
- alert("文件大小符合要求");
- return;
- }
- } catch(e) {
- alert(e);
- }
- }
- </script>
- </html>
以上就是小编为大家带来的真正好用的 js 验证上传文件大小的简单方法全部内容了,希望大家多多支持 phperz~
来源: http://www.phperz.com/article/17/0707/330869.html