在百度上搜索js代码,搜索到的js代码只针对ie6版本,说是ie7以后的版本不支持客户端判断文件大小,出于安全的考虑。但每次都上传服务器再判断,超过大小了再删除,感觉挺麻烦,效率也低。请问有没有什么好办法?谢了!

解决方案 »

  1.   

     
    fileUpload1.PostedFile.ContentLength < 大小
      

  2.   

    //上传图片  -- BigPic
        private string SaveImagesBigPic(ref string saveBigPicFileName)
        {
            if (FUBigPic.FileName != "")
            {            ///'遍历File表单元素 
                HttpFileCollection files = HttpContext.Current.Request.Files;
                /// '状态信息 
                System.Text.StringBuilder strMsg = new System.Text.StringBuilder();
                try
                {
                    for (int iFile = 0; iFile < files.Count; iFile++)
                    {
                        ///'检查文件扩展名字 
                        HttpPostedFile postedFile = files[iFile];
                        string fileName, fileExtension;
                        int filesize = postedFile.ContentLength;
                        fileName = System.IO.Path.GetFileName(postedFile.FileName);
                        if (fileName != "")
                        {
                            ///'可根据扩展名字的不同保存到不同的文件夹 
                            ///注意:可能要修改你的文件夹的匿名写入权限。
                            string saveFileName = DateTime.Now.Ticks.ToString();
                            fileExtension = System.IO.Path.GetExtension(fileName);
                            if (filesize < 1048576)
                            {
                                if (fileExtension == ".jpg" || fileExtension == ".gif" || fileExtension == ".jpeg")
                                {
                                    saveBigPicFileName = saveFileName + fileExtension;
                                    string savePath = "~/uploadPic/bigPic/";
                                    postedFile.SaveAs(System.Web.HttpContext.Current.Request.MapPath(savePath) + saveBigPicFileName);
                                }
                                else
                                {
                                    Ajax.Alert(UpdatePanel1, "输入的图片格式支持!");
                                }
                            }                    }
                        else 
                        {
                            Ajax.Alert(UpdatePanel1, "图片过大!");
                        }
                    }            }
                catch (Exception)
                {
                    this.ClientScript.RegisterClientScriptBlock(this.GetType(), "", "alert('操作成功!')", true);
                }
            }
            else 
            {
                saveBigPicFileName = "0.jpg";
            }        return saveBigPicFileName;
        }
        //上传图片--SmallPic
        public string SaveImagesSmallPic(ref string  saveSmallPicFileName)
        {
            if (FUSmallPic.FileName != "")
            {
                ///'遍历File表单元素 
                HttpFileCollection files = HttpContext.Current.Request.Files;            /// '状态信息 
                System.Text.StringBuilder strMsg = new System.Text.StringBuilder();
                try
                {
                    for (int iFile = 0; iFile < files.Count; iFile++)
                    {
                        ///'检查文件扩展名字 
                        HttpPostedFile postedFile = files[iFile];
                        string fileName, fileExtension;
                        int filesize = postedFile.ContentLength;
                        fileName = System.IO.Path.GetFileName(postedFile.FileName);                    if (fileName != "")
                        {
                            ///'可根据扩展名字的不同保存到不同的文件夹 
                            ///注意:可能要修改你的文件夹的匿名写入权限。
                            string saveFileName = DateTime.Now.Ticks.ToString();
                            fileExtension = System.IO.Path.GetExtension(fileName);
                            if (filesize < 204800)
                            {
                                if (fileExtension == ".jpg" || fileExtension == ".gif" || fileExtension == ".jpeg")
                                {
                                    saveSmallPicFileName = saveFileName + fileExtension;
                                    string savePath = "~/uploadPic/smallPic/";
                                    postedFile.SaveAs(System.Web.HttpContext.Current.Request.MapPath(savePath) + saveSmallPicFileName);
                                }
                                else
                                {
                                    Ajax.Alert(UpdatePanel1, "输入的图片格式支持!");
                                }
                            }
                            else 
                            {
                                Ajax.Alert(UpdatePanel1, "图片过大!");
                            }
                        }
                    }
                }
                catch (Exception)
                {
                    this.ClientScript.RegisterClientScriptBlock(this.GetType(), "", "alert('操作成功!')", true);
                }
            }
            else
            {
                saveSmallPicFileName = "0.jpg";
            }
            return saveSmallPicFileName;
        }
      

  3.   

    IE8加强了安全性,已经不能用dynsrc了,
    改成用 flash上传
      

  4.   

    可以在客户端判断,但是要装object 例如flash
      

  5.   

    到微软网站下载一个sliverlight版本的fileUploader控件,非常好用。
    是免费的,带源码,自己可以扩充功能。
    带进度条,支持多文件上传,自定义文件大小限制等等
      

  6.   

    <httpRuntime maxRequestLength="51200" executionTimeout="600"/>
    int fileLength = this.FileUpload1.PostedFile.ContentLength;
    function getFileSize(fileName) 

    var fso=new ActiveXObject('Scripting.FileSystemObject'); 
    var file =fso.GetFile(fileName); 
    return file.Size; 

      

  7.   

    IE安全设置了不行 用bitmap 将流读取到bitmap中 再判断大小 只能在服务端判断 我也遇到这样的问题  就是这样解决的
      

  8.   

    如果lz只是要在js里判断下,这个方法非常好!