NeatUpload大文件上传组件,如何控制允许上传的文件大小? 如题 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 if (FileUpload1.PostedFile.ContentLength < 1024 * 2000) {} 我用调试跟踪,他没有进判断就直接弹出进度条开始传了,莫名,代码如下:protected void btnSubmit_Click(object sender, EventArgs e) { //验证填写是否通过 if (Vaildate()) { Dictionary<string, string> dic = (Dictionary<string, string>)Session["Evidence"]; string fileName = AttachFile.FileName;//获取文件名 string extenName = System.IO.Path.GetExtension(fileName);//获取扩展名 string saveFileName = System.IO.Path.Combine(Request.PhysicalApplicationPath + "UploadTemp", DateTime.Now.ToString("yyyyMMddhhmm") + extenName);//合并两个路径为上传到服务器上的全路径 //判断是否已存在相同文件名 if (dic.ContainsKey(fileName)) { Response.Write("<script>alert('已存在同名文件');</script>"); } else { try { AttachFile.MoveTo(saveFileName, Brettle.Web.NeatUpload.MoveToOptions.Overwrite); } catch (Exception ex) { throw ex; } dic.Add(fileName, saveFileName); Session["Evidence"] = dic; //传递本页面的返回值 string strScript = string.Empty; strScript += "<script language='javascript'> "; strScript += " window.returnValue='true'"; strScript += "</script>"; ClientScript.RegisterStartupScript(this.GetType(), "KK", strScript); ClientScript.RegisterStartupScript(this.GetType(), "close", "<script>window.close();</script>"); } } } /// <summary> /// 验证表单填写是否规范 /// </summary> /// <returns></returns> protected bool Vaildate() { if (AttachFile.HasFile) { //文件名 string fileName = AttachFile.FileName; //文件后缀名 string postfix = System.IO.Path.GetExtension(fileName).ToLower(); //判断文件大小 if (AttachFile.ContentLength > 10240000) { Response.Write("<script>alert('文件大小超出范围');</script>"); return false; } return true; } Response.Write("<script>alert('尚未选取附件');</script>"); return false; } //获取文件大小并保留小数点后一位,单位是Mfloat FileSize = (float)System.Math.Round((float)AttachFile.ContentLength / 1024000, 1); 我用调试跟踪,他没有进判断就直接弹出进度条开始传了!难道是我在WEB.CONFIG里配置有误? 可能我描述的不够清楚,我再解释下在AttachFile.MoveTo(saveFileName, Brettle.Web.NeatUpload.MoveToOptions.Overwrite); 也就是上传文件之前,我加了判断控制文件的大小,但是我跟踪调试:点击上传BUTTON后,还没有执行到判断,ProgressBar就已经弹出来并且开始上传,显示进度了,如何让这个ProgressBar在判断执行之后,再开始上传? 我也遇到了同样的问题,这个要在web.config中配置maxRequestLength,如果大于你设定的值,那么进度条显示rejected <neatUpload ... useHttpModule="false" maxNormalRequestLength="100" maxRequestLength="2097151">详细的信息你可以参照neatupload网站提供的手册:http://www.brettle.com/NeatUpload-1.3/dotnet/docs/Manual.html#3.4.Allowing%20Users%20with%20Flash%20to%20Select%20Multiple%20Files%20from%20One%20File%20Selection%20Dialog|outline 计算有错误哦,应该是:float FileSize = (float)System.Math.Round((float)AttachFile.ContentLength / 1024000, 1);点击文件,查看属性,可以看到文件大小是以字节计算的,1M=1024KB,1KB=1024字节 在你的 Button 上写一个 onmousedown 的功能用JavaScript判断 如果不满足条件则return false; 这样就不会提交到后台 生成静态页后再修改的问题! 想做一个网管系统. 关于WEB用户控件的问题 请教大虾们如何使用用户自定义控件? [馨郁星愿]程序操作数据库超时及求解决方案或相关原因! c#中如何判断当前时间是否在这个时间段 18:30-05:00 关于Eval提取第一个字段记录 .net服务器出现一些间隙性无法运行毛病 请教高手webdiyer(webdiyer),分页控件问题,请进! 已知文件所在的路径,如何删除该文件? 提问:低版本的项目转换成2008后一些类提示"已过时"!需要改吗?想偷懒不改应该没啥问题的把! 请问什么是从元数据?
{}
{
//验证填写是否通过
if (Vaildate())
{
Dictionary<string, string> dic = (Dictionary<string, string>)Session["Evidence"];
string fileName = AttachFile.FileName;//获取文件名
string extenName = System.IO.Path.GetExtension(fileName);//获取扩展名
string saveFileName = System.IO.Path.Combine(Request.PhysicalApplicationPath + "UploadTemp", DateTime.Now.ToString("yyyyMMddhhmm") + extenName);//合并两个路径为上传到服务器上的全路径
//判断是否已存在相同文件名
if (dic.ContainsKey(fileName))
{
Response.Write("<script>alert('已存在同名文件');</script>");
}
else
{
try
{
AttachFile.MoveTo(saveFileName, Brettle.Web.NeatUpload.MoveToOptions.Overwrite);
}
catch (Exception ex)
{
throw ex;
}
dic.Add(fileName, saveFileName);
Session["Evidence"] = dic; //传递本页面的返回值
string strScript = string.Empty;
strScript += "<script language='javascript'> ";
strScript += " window.returnValue='true'";
strScript += "</script>";
ClientScript.RegisterStartupScript(this.GetType(), "KK", strScript);
ClientScript.RegisterStartupScript(this.GetType(), "close", "<script>window.close();</script>");
}
}
} /// <summary>
/// 验证表单填写是否规范
/// </summary>
/// <returns></returns>
protected bool Vaildate()
{
if (AttachFile.HasFile)
{
//文件名
string fileName = AttachFile.FileName;
//文件后缀名
string postfix = System.IO.Path.GetExtension(fileName).ToLower(); //判断文件大小
if (AttachFile.ContentLength > 10240000)
{
Response.Write("<script>alert('文件大小超出范围');</script>");
return false;
}
return true;
}
Response.Write("<script>alert('尚未选取附件');</script>");
return false;
}
//获取文件大小并保留小数点后一位,单位是M
float FileSize = (float)System.Math.Round((float)AttachFile.ContentLength / 1024000, 1);
在AttachFile.MoveTo(saveFileName, Brettle.Web.NeatUpload.MoveToOptions.Overwrite); 也就是上传文件之前,我加了判断控制文件的大小,但是我跟踪调试:点击上传BUTTON后,还没有执行到判断,ProgressBar就已经弹出来并且开始上传,显示进度了,如何让这个ProgressBar在判断执行之后,再开始上传?
float FileSize = (float)System.Math.Round((float)AttachFile.ContentLength / 1024000, 1);
点击文件,查看属性,可以看到文件大小是以字节计算的,1M=1024KB,1KB=1024字节
用JavaScript判断 如果不满足条件则return false; 这样就不会提交到后台