none
ASP.NET 在上传文件前判断文件大小的问题 RRS feed

  • 问题

  • 大家好,我用了FileUpload控件来向数据库提交文件,我知道IIS 默认限制4M.
    而我是通过程序控制到了3M 以下。但每次判断都是文件上载之后,才能通过

    FileUpload1.PostedFile.ContentLength 取到文件大小。如果用户上传了大于4M 或

    更大的文件,IE 会报错,体验不好;
    请问ASP.NET 是否有办法在文件上载之前,判断文件大小呢?

    2015年9月20日 13:15

答案

  • <form action="upload" enctype="multipart/form-data" method="post">
    
        Upload image:
        <input id="image-file" type="file" name="file" />
        <input type="submit" value="Upload" />
    
        <script type="text/javascript">
            $('#image-file').bind('change', function() {
                alert('This file size is: ' + this.files[0].size/1024/1024 + "MB");
            });
        </script>
    
    </form>


    http://feiyun0112.cnblogs.com/

    2015年9月21日 9:03
    版主
  • 你好,

    有两种方式来判断文件大小。

    1,从客户端判断,使用Javascript或者JQuery.

    <input type="file" id="fileUpload" />
    
    <input type="button" value="Upload" onclick="Upload()" />
    
    <script type="text/javascript">
    
        function Upload() {
    
            var fileUpload = document.getElementById("fileUpload");
    
            if (typeof (fileUpload.files) != "undefined") {
    
                var size = parseFloat(fileUpload.files[0].size / 1024).toFixed(2);
                //判断文件大小
                alert(size + " KB.");
    
            } else {
    
                alert("This browser does not support HTML5.");
    
            }
    
        }
    
    </script>

    更多详细信息,请参考:http://www.aspsnippets.com/Articles/Check-Validate-File-Image-Size-before-upload-using-JavaScript-and-jQuery.aspx

    2. 从服务器端来验证:

    protected void Button1_Click(object sender, EventArgs e) { if (FileUpload1.HasFile) { long fileSize = FileUpload1.FileContent.Length;

    //判断文件大小 lblmessage.Text = "Selected File Size :" + fileSize.ToString(); } else { lblmessage.Text = "Please select file."; } }

    http://www.aspdotnet-pools.com/2014/06/how-to-get-file-size-uploaded-by.html


    2015年9月21日 9:36
    版主

全部回复

  • <form action="upload" enctype="multipart/form-data" method="post">
    
        Upload image:
        <input id="image-file" type="file" name="file" />
        <input type="submit" value="Upload" />
    
        <script type="text/javascript">
            $('#image-file').bind('change', function() {
                alert('This file size is: ' + this.files[0].size/1024/1024 + "MB");
            });
        </script>
    
    </form>


    http://feiyun0112.cnblogs.com/

    2015年9月21日 9:03
    版主
  • 你好,

    有两种方式来判断文件大小。

    1,从客户端判断,使用Javascript或者JQuery.

    <input type="file" id="fileUpload" />
    
    <input type="button" value="Upload" onclick="Upload()" />
    
    <script type="text/javascript">
    
        function Upload() {
    
            var fileUpload = document.getElementById("fileUpload");
    
            if (typeof (fileUpload.files) != "undefined") {
    
                var size = parseFloat(fileUpload.files[0].size / 1024).toFixed(2);
                //判断文件大小
                alert(size + " KB.");
    
            } else {
    
                alert("This browser does not support HTML5.");
    
            }
    
        }
    
    </script>

    更多详细信息,请参考:http://www.aspsnippets.com/Articles/Check-Validate-File-Image-Size-before-upload-using-JavaScript-and-jQuery.aspx

    2. 从服务器端来验证:

    protected void Button1_Click(object sender, EventArgs e) { if (FileUpload1.HasFile) { long fileSize = FileUpload1.FileContent.Length;

    //判断文件大小 lblmessage.Text = "Selected File Size :" + fileSize.ToString(); } else { lblmessage.Text = "Please select file."; } }

    http://www.aspdotnet-pools.com/2014/06/how-to-get-file-size-uploaded-by.html


    2015年9月21日 9:36
    版主