• ASP.NET中使用js JavaScript获取FileUpload 文件大小


    后台代码中,虽然可以通过FileContent.Length来获取大小,不过这种方法应尽量避免使用。

    服务器端代码会在服务器端运行,所以用该方法验证会发现很慢。因为页面首先会把文件上传到服务器临时空间,由服务器再获取文件大小。所以效率很低,严重占用带宽。方法不可取。尤其网速不好的情况下,客户上传了半天,才弹出个文件太大的提示,不崩溃才怪。

    因此,首选js代码。

    下面是正文:

    首先在页面添加一个FileUpLoad控件。(再次以idfudPolicy为例

    然后添加一个上传Button。示例界面如图。

     

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

       //验证文件大小

        function ckFileSize()

        {

            //把附件当做图片处理放在缓冲区预加载

            var file=new Image();

            //设置附件的url

            file.dynsrc=document.getElementById("fudPolicy").value;

            //获取上传的文件的大小

            var filesize=file.fileSize/1024;

            if(filesize>3072)

            {

                alert("上传的文件不得大于M");

                return false;

            }

             return true;

        }

    </script>

    最后在onload事件里调用即可。

    IE6 测试通过,IE7测试拒绝访问。

    IE7可以使用如下代码

    1. <script type="text/javascript">   
    2. function getFileSize(filePath)   
    3. {   
    4.    var fso = new ActiveXObject("Scripting.FileSystemObject");   
    5.     alert("文件大小为:"+fso.GetFile(filePath).size);   
    6. }   
    7. </script>   
    8. <body>   
    9. <INPUT TYPE="file" NAME="file" SIZE="30" onchange="getFileSize(this.value);">   
    10. </body>  

    这种方法可以实现,也容易被开发人员想到,但是唯一不足之处是有安全提示,当然把文件名改为.hta则会屏蔽掉安全提示,但很难被需求所取。不推荐,也不多说

    <form id="form1" runat="server" onsubmit="return ckFileSize()">


    下面主要谈谈另一种方式,在html标签中有一个不为一般开发人员“深”知得img标签,先来说下它有得属性:src,dynsrc,start,alt,controls,loop,loopdelay,hspace,vspace....还有一些常用得属性就不列出来了,在这里我们说一下"dynsrc"这个属性:dynsrc可以用来插入各种多媒体,格式可以是Wav、Avi、AIFF、AU、MP3、Ra、Ram等等。url为音频或视频文件及其路径,可以是相对路径或绝对路径。

    示例:<img dynsrc="xxxx.mp3">

    这样我们就可以根据dynsrc动态赋值任何类型文件得路径,在javascript中根据Image对象本身得fileSize属性来得到文件得大小。当然Image对象还有其它得几个属性,例如:fileCreatedDate、fileModifiedDate、fileSize、fileUpdatedDate、filters... , 代码如下:


    Javascript代码
    <script type="text/javascript">   
    function getFileSize(filePath)   
    {   
    var image=new Image();   
    image.dynsrc=filePath;   
    alert(image.fileSize);   
    }   
    </script>   
    <body>   
    <INPUT TYPE="file" NAME="file" SIZE="30" onchange="getFileSize(this)">   
    </body>
    <script type="text/javascript">
    function getFileSize(fileObj)
    {
    var image=new Image();
    image.dynsrc=fileObj.value;
    alert(image.fileSize || fileObj.files[0].fileSize);
    }
    </script>
    <body>
    <INPUT TYPE="file" NAME="file" SIZE="30" onchange="getFileSize(this.value)">
    </body>

    javascript判断文件类型

    var type=(src.substr(src.lastIndexOf("."))).toLowerCase();
    if(type!=".jpg"&&type!=".gif"&&type!=".jpeg"&& type!=".png"){alert("您上传图片的类型不符合(.jpg|.jpeg|.gif|.png)!");return false;}

  • 相关阅读:
    MySQL主从复制(异步复制与半同步复制)
    http和https到底区别在哪
    Tcp的Flags
    机器学习之近邻算法模型(KNN)
    机器学习之linear_model (线性回归算法模型)
    数据分析之Pandas操作
    数据分析之Numpy的基本操作
    分布式爬虫
    基于CrawlSpider全栈数据爬取
    HDU-4687 Boke and Tsukkomi 带花树,枚举
  • 原文地址:https://www.cnblogs.com/yuananyun/p/1960215.html
Copyright © 2020-2023  润新知