客户端用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. CloudSim4.0报错NoClassDefFoundError,Caused by: java.lang.ClassNotFoundException: org.apache.commons.math3.distribution.UniformRealDistribution

    今天下载了CloudSim 4.0的代码,运行其中自带的示例程序,结果有一部分运行错误: 原因是找不到org.apache.commons.math3.distribution.UniformReal ...

  2. c++队列基本功能

    #include<string>#include<assert.h>#include<iostream>typedef int status;#define OK ...

  3. 基于netty轻量的高性能分布式RPC服务框架forest<上篇>

    工作几年,用过不不少RPC框架,也算是读过一些RPC源码.之前也撸过几次RPC框架,但是不断的被自己否定,最近终于又撸了一个,希望能够不断迭代出自己喜欢的样子. 顺便也记录一下撸RPC的过程,一来作为 ...

  4. Jade 模板引擎使用

    在 Express 中调用 jade 模板引擎 jade 变量调用 if 判断 循环 Case 选择 在模板中调用其他语言 可重用的 jade 块 (Mixins) 模板包含 (Includes) 模 ...

  5. mysql查询时强制区分大小写

    转载自:http://snowolf.iteye.com/blog/1681944 平时很少会考虑数据存储需要明确字符串类型字段的大小写,MySQL默认的查询也不区分大小写.但作为用户信息,一旦用户名 ...

  6. cout 格式化输出

    一直习惯于C语言的printf函数来打印,突然有一天要用cout来打印,发现有点不适应. 原来cout也是有格式化输出的. 首先要引入头文件 #include<iostream> // 在 ...

  7. java线程 - 多线程 - 守护线程

    1.多线程执行者/处理类 都是Runnable的实现类(如自定义类实现Runnable 或 java原生的Thread.FutureTask),但最后都必须封装成Thread线程类由Thread.st ...

  8. quartz配置文件详解

    quartz配置文件详解(转载)     quartz学习总结: 一.关于job:    用Quartz的行话讲,作业是一个执行任务的简单Java类.任务可以是任何Java代码.只需你实现org.qu ...

  9. SQL中TOP,LIMIT,ROWNUM的用法

    SQL SERVER/MS Access的Select Top的用法: Select TOP number|percent table_columname FROM tablename MySQL/O ...

  10. yii 简单依赖注入

    <?phpnamespace app\controllers;use Yii;use yii\di\Container;use yii\di\ServiceLocator;use yii\web ...