当前位置:编程学习 > C#/ASP.NET >>

求助:文件上传控制

我用FileUplod控件实现一个文件上传的页面,当文件大于4M时,我想弹出一个"上传文件不能大于4M的提示框",怎么实现呢?如果是需要修改webconfig配置文件和更改浏览器设置的实现就请不要发了,谢谢 --------------------编程问答--------------------  // string type = FileUpload1.PostedFile.ContentType;//上传文件类型
            // string size = FileUpload1.PostedFile.ContentLength.ToString();//上传文件大小
--------------------编程问答-------------------- private void aa(FileUpload fud, string fn)
        {
            string pname = "";
            string ext;
            string imgpath = "UploadFiles/image/";//文件存放路径
            Random r = new Random();
            if (!string.IsNullOrEmpty(fud.FileName))
            {
                ext = Path.GetExtension(fud.PostedFile.FileName).ToLower();
                if(fud.PostedFile.ContentLength > 4000000 )
                {
          Response.Write("<script>alert('大于4M不能上传');</script>");
return;
}
                if (( ext == ".jpg" || ext == ".gif" || ext == ".bmp" || ext == ".png" ) && ( fud.PostedFile.ContentLength < 4000000 ))//实际应用中要大点
                {                                     
                                    pname = r.Next(10, 10000).ToString() + ext;
                    if (File.Exists(Server.MapPath(imgpath + pname)))
                    {
                        pname = "L" + pname;
                    }
                    ain.CName = fn.Split('.')[0];                              
                    ain.CTime = DateTime.Now.ToShortDateString();
                    ain.Contents = fn.Split('.')[0];  
                    ain.Model = pname;
                    ain.Material = "lyk";
                    ain.Classify = Session["Classify"].ToString();
                    a.insertIntAccessInfo(ain);
                    fud.PostedFile.SaveAs(Server.MapPath(imgpath + pname));
                    
                }
            }
        }
//方法是好久以前的,自己修改下 --------------------编程问答-------------------- 这样的实现是不行的,如果不修改webconfig文件,大于4M就直接报错了 --------------------编程问答--------------------    我以前是修改web.config的 --------------------编程问答--------------------
   
if (FileUpload1.PostedFile.ContentLength > 1024 * 1024 * 4) 
                    { 
                        return "Erro:上传图片文件大于4M!"; 
                    } 

1:默认只能上传4096KB(即4M)大小的文件,改变大小需要修改Web.config 
修改如下:在 <system.web> </system.web>中添加:   
C# code<httpRuntime maxRequestLength="51200" executionTimeout="600"/>


2:程序中就直接用  
  Request.Files[0].ContentLength  //0是代表第一个要上传的文件,是个索引  
  或FileUpload1.PostedFile.ContentLength得到大小 

  在判断就行~~ --------------------编程问答-------------------- to Lovely_baby
请看清问题,“如果是需要修改webconfig配置文件和更改浏览器设置的实现就请不要发了”,不过还是要谢谢你给我回帖 --------------------编程问答--------------------
引用 6 楼 as605 的回复:
to Lovely_baby
请看清问题,“如果是需要修改webconfig配置文件和更改浏览器设置的实现就请不要发了”,不过还是要谢谢你给我回帖

那你直接在程序中控制不行吗??
if (FileUpload1.PostedFile.ContentLength > 1024 * 1024 * 4) 
                    { 
 Response.Write("<scr" + "ipt language='javascript'>alert('上传图片文件大于4M!')</" + "script>");
                    } 
--------------------编程问答-------------------- to Lovely_baby
这样不行的,到不了页面就报错了,用JavaScript可以获取文件大小,但需要改浏览器设置,不知道不改浏览器设置能不能实现 --------------------编程问答-------------------- 7 楼的可以 --------------------编程问答-------------------- 你的问题是限制上传文件大小,还是如何上传大文件 ?是大于4M的也能上传上去 还是还没到4M就传不上去了?默认的上传是2M大了都不能上传!如果是不能上传大文件修改WEBCONFIG或者服务器配置 或者分段上传  --------------------编程问答-------------------- to CODE163

我是想如果上传的文件大于文件的最大限制时给出不能上传的提示框,也就是获取上传文件的大小做判断,但不想把在webconfig里设得很大,如2G.在客户端用JavaScript判断又需要把浏览器的安全设置的很低才行
补充:.NET技术 ,  ASP.NET
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,