客户端用javascript获取文件大小

1 ie实现代码如下:

<script type="text/javascript" language="javascript">

function getFileSize(fileName)

{

if(document.all)//判断是否是IE浏览器

{

window.oldOnError = window.onerror;

window.onerror = function(err)

{

if(err.indexOf('Automation')!=-1)

{

alert('没有访问文件的权限');

return true;

}

else

{

return false;

}

}

var fso = new ActiveXObject('Scripting.FileSystemObject');

var file = fso.GetFile(fileName);

window.onerror = window.oldOnError;

return file.Size;

}

}

</script>

2 ff ie6,7,8

function checkFileSize(){

var agent      = window.navigator.userAgent;

var fileupload = document.getElementById("upfile");

var isIE7 = agent.indexOf('MSIE 7.0') != -1;

var isIE8 = agent.indexOf('MSIE 8.0') != -1;

var maxSize = 2000000;

try{

//火狐获取路径

if (agent.indexOf("Firefox") >= 1) {

var fileSize = fileupload.files[0].fileSize;

} else if (isIE7 || isIE8) {  //IE7和IE8获得文件路径

fileupload.select();

filepath = document.selection.createRange().text;

var aa = new ActiveXObject("Scripting.FileSystemObject");

var fileSize = aa.GetFile(filepath).size;

} else { //IE6获得文件路径

filepath = fileupload.value;

var aa = new ActiveXObject("Scripting.FileSystemObject");

var fileSize = aa.GetFile(filepath).size;

}

if(fileSize > maxSize) {

alert("上传文件不可超过2MB!");

return false;

}

}catch(e){

alert("请修改IE浏览器ActiveX安全设置为启用~!");

return false;

}

return true;

}

*【常见问题】Automation 服务器不能创建对象*

【解决方法】

第一步:浏览器-->工具-->Internet选项-->安全-->Internet的自定义级别-->安全级别设为"中",启用"对没有标记为安全的ActiveX控件进行

初始化和脚本运行"

第二步:接第一步选择"受信任的站点"-->站点-->去掉要求进行"服务器验证(https:)"前面的勾,然后添加运行上面js代码的站点到受信任的区

域,例如:http://localhost

另外:如果用户遇到不能修改IE中Internet选项的安全级别时,解决方法是先打开注册表编辑器,找到

"HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\3"分支,

在右侧窗口中将"MinLevel"修改为"10000"(十六进制)后就可以在IE属性中设置较低的安全级别了。

亲测方案可行,但是需要做安全配置,这个对于我们程序员是可以的,当时我们不能要求用户也都像这样去设置

3 一个只是用于ie6的方法(不用安全配置)

直接上代码:

var browser=navigator.appName;

var b_version=navigator.appVersion;

var version=b_version.split(";");

var trim_Version=version[1].replace(/[ ]/g,"");

if(browser=="Microsoft Internet Explorer" && trim_Version=="MSIE6.0"){

var file = $('#file1')[0];

var filePath = file.value;

var image=new Image();

image.dynsrc=filePath;

filesize=image.fileSize;

alert(filesize);

}

dynsrc属性只有在Ie6中适用,在以上版本中都摒弃了。

4 高级浏览器

var fileSize = document.getElementById("#file").size;

console.log(fileSize);

客户端用javascript获取文件大小的更多相关文章

  1. 客户端用javascript获取grid的数据。

  2. JavaScript获取客户端计算机硬件及系统等信息的方法

    JavaScript获取客户端计算机硬件及系统等信息的方法 JavaScript 获取客户端计算机硬件及系统信息 通过WMI来实现获取客户端计算机硬件及系统信息: function getSysInf ...

  3. 客户端的javascript改变了asp.net webform页面控件的值,后台代码中如何获取修改后的值。

    客户端的javascript改变了asp.net webform页面控件的值,后台代码中如何获取修改后的值.     无论是什么的html控件,只要加上了runat="server" ...

  4. java版ftp简易客户端(可以获取文件的名称及文件大小)

    java版ftp简易客户端(可以获取文件的名称及文件大小) package com.ccb.ftp; import java.io.IOException; import java.net.Socke ...

  5. Javascript 获取链接(url)参数的方法

    有时我们需要在客户端获取链接参数,一个常见的方法是将链接当做字符串,按照链接的格式分解,然后获取对应的参数值.本文给出的就是这个流程的具体实现方法. 当然,我们也可以用正则直接匹配,文章中也给出了一个 ...

  6. JavaScript获取浏览器信息的方法

    Window有navigator对象让我们得知浏览器的全部信息.我们可以利用一系列的API函数得知浏览器的信息. JavaScript代码如下: ? 1 2 3 4 5 6 7 8 9 10 11 1 ...

  7. ASP.NET获取客户端信息,获取客户端IP等等

    山上明月 ASP.NET能知道的东西 获取服务器电脑名: Page.Server.ManchineName 获取用户信息: Page.User 获取客户端电脑名:Page.Request.UserHo ...

  8. JavaScript获取浏览器版本等信息

    ** 不同浏览器版本可能存在差异,使用时请测试自己的环境 ** 测试时各个浏览器版本 IE: 11.953.14393.0 Edge: Microsoft Edge 38.14393.0.0;Micr ...

  9. 转:javascript获取上一访问页面

    原文链接:移动端返回上一页,刚需!document.referrer 详解 全文如下: 返回上一页,在PC端我们可以使用:history.go(-1)或者history.back(),可以正常返回第一 ...

随机推荐

  1. Python全栈开发【基础四】

    Python全栈开发[基础四] 本节内容: 匿名函数(lambda) 函数式编程(map,filter,reduce) 文件处理 迭代器 三元表达式 列表解析与生成器表达式 生成器 匿名函数 lamb ...

  2. css3中变形函数(同样是对元素来说的)和元素通过改变自身属性达到动画效果

    /*对元素进行改变(移动.变形.伸缩.扭曲)*/ .wrapper{ margin:100px 100px auto auto; width:300px; height:200px; border:2 ...

  3. links and softwares

    links 普通 http://www.ncpa-classic.com//special/2014gejujie/index.shtml ; 中国大剧院 http://tieba.baidu.com ...

  4. ajax 设置同步

    这个问题总是碰见,但是又总是记不住怎么拼写,这次直接写出来,长期保存. Ajax请求默认的都是异步的 如果想同步 async设置为false就可以(默认是true) 例如: $.ajax({      ...

  5. MongoDB 学习笔记一: 配置

    下载MongoDB 下载地址:https://www.mongodb.com/download-center?jmp=nav#community 这里是在windows平台下安装MongoDB, 下载 ...

  6. mac 给某个目录添加权限

    1  cd 到这个目录的上一层目录 2  sudo  chmod  -R 777 3 输入密码 4 完成

  7. C# 动态调用DLL库

    最近经常用到C#动态调用类库,简单的做下记录方便以后查询. 使用下面的几行代码就可以简单实现DLL类库的调用了 using System.Reflection; // 引入该命名空间 // 获取roc ...

  8. Dcloud HTML5 监听蓝牙设备 调用 原生安卓实现

    最近一直搞Dcloud ,这是HTML5版本的开发,打包时候,可以打包成 apk 和ipa 分别运行在安卓和ios 机器上面, 但是这里面的资料很少,遇到问题,之后只能自己钻研总结, 现在有这么一个需 ...

  9. hadoop2.6.4 搭建单机模式

    注(要先安装jdk,最好jdk版本>=1.7) 安装jdk  http://www.cnblogs.com/zhangXingSheng/p/6228432.html     给普通用户添加su ...

  10. tp框架之文件上传

    控制器 function wenjian() { if(empty($_FILES)) { $this->display(); } else { $u = new \Think\Upload() ...