首页 新闻 搜索 专区 学院

我要实现上传功能 但是检验文件大于4MB没有实现 请帮忙看看

0
悬赏园豆:10 [已解决问题] 解决于 2012-02-02 16:46

  /// <summary>
    /// 上传文件
    /// </summary>
    /// <param name="path">将文件上传到服务器的路径</param>
    /// <param name="fileupload">上传文件的控件名称</param>
    public partial class UpFile : System.Web.UI.Page
    {
        public void Upload(string path,System .Web .UI.WebControls .FileUpload fileupload)
        {
            bool fileOk = false;  //s设置布尔值,并且将初始值为false;
            if (fileupload.HasFile)
            {
                string fileException = System.IO.Path.GetExtension(fileupload .FileName ).ToLower ();//将上传的文件名转小写字母
                //上传文件格式
                string[] alloweException = { ".xls", ".doc", ".mpp", ".rar", ".zip",".vsd", ".txt", ".jpg", ".gif", ".bmp", ".png", ".swf", ".avi", ".mp3",".rm", ".wma", ".wmv"  };
                for (int i = 0; i < alloweException.Length; i++)
                {
                    if (fileException == alloweException[i])
                        fileOk = true;  //返还成功标志
                }
            }
            if (fileOk)  //判断上传的文件是否在指定格式范围内
            {
                //判断文件是否存在,不存在则创建路径
                if (System.IO.Directory.Exists(path))
                {
                    //该目录存在则将文件上传到该目录当中
                }
                else
                {
                    System.IO.Directory.CreateDirectory(path);//创建目录
                }
                fileupload.SaveAs(path + "\\" + fileupload.FileName);//执行上传操作
            }
            else
            {
                Page.RegisterStartupScript("ss", "<script>alert('格式不正确或不支持')</script>");
                //throw new Exception("格式不正确或不支持!");
            }
        }
        protected void Page_Load(object sender, EventArgs e)
        {
         
        }

        protected void Button1_Click(object sender, EventArgs e)
        {
            string filepath = "";//声明一个字符变量
            //是否有上传文件
            if (this.FileUpload1.FileName != null && this.FileUpload1.FileName != "")
            {
                if (FileUpload1.PostedFile.ContentLength <= 0)
                {
                    Page.RegisterStartupScript("ss", "<script>alert('上传文件为空,请重新选择!')</script>");
                    return;
                }
                else
                {
                    if (FileUpload1.HasFile)
                    {
                        if (FileUpload1.PostedFile.ContentLength > 40000)//字节单位 不超过4mb
                        {
                            Page.RegisterStartupScript("ss", "<script>alert('上传文件超过4MB')</script>");
                            return;
                        }
                        else
                        {
                            filepath = Server.MapPath("~/wenjian");//设置服务器文件路径
                        }
                        //调用 Upload方法
                        Upload(filepath, this.FileUpload1);
                        Page.RegisterStartupScript("ss", "<script>alert('上传成功!')</script>");
                    }
                }
            }
            //如果上传文件错误,则返回操作
            else
            {
                Page.RegisterStartupScript("ss", "<script>alert('上传文件路径错误!')</script>");
                return;
            }
        }
    }

l277978707的主页 l277978707 | 初学一级 | 园豆:160
提问于:2012-02-01 14:30
< >
分享
最佳答案
0

在服务器端是无法判断文件大小的,也就是你上面的代码再改也无法判断文件大小。

可以用js来获取文件大小的信息增加友好的交互。

这个是我搜索的链接http://zzk.cnblogs.com/so.aspx?w=js+%E6%96%87%E4%BB%B6%E5%A4%A7%E5%B0%8F&t=

希望能帮助到你。

收获园豆:6
today4king | 老鸟四级 |园豆:3267 | 2012-02-01 14:45

谢谢 提供参考资料 呵呵。。。

l277978707 | 园豆:160 (初学一级) | 2012-02-02 16:44
其他回答(2)
0

应该是在页面的配置文件中修改一个属性就可以了,这个问题我也遇到过,不过好久没做bs项目了,你在网上找找这个属性,只需要把那个上传大小改到最大就可以了!希望对你有帮助、

收获园豆:2
BLUESMAN | 园豆:213 (菜鸟二级) | 2012-02-01 14:41

他是想检测上传文件的大小,不是改变上传文件大小的限制。

支持(0) 反对(0) today4king | 园豆:3267 (老鸟四级) | 2012-02-01 14:51

谢谢 给指点

支持(0) 反对(0) l277978707 | 园豆:160 (初学一级) | 2012-02-02 16:41
0

JS判断文件大小

收获园豆:2
硕硕 | 园豆:212 (菜鸟二级) | 2012-02-01 17:04

嗯 。。。

支持(0) 反对(0) l277978707 | 园豆:160 (初学一级) | 2012-02-02 16:44
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册