asp.net-mvc – 上传文件并验证文件扩展名和文件大小MVC 5
发布时间:2020-12-16 03:52:24 所属栏目:asp.Net 来源:网络整理
导读:我使用下面的代码,以便上传和检查文件扩展名和文件大小 更新2 调节器 public ActionResult Create([Bind(Include = "anak_ID,Pubdate,kind,title,file,details,link")] HttpPostedFileBase file,announcement announcement) { if (ModelState.IsValid) { db.
我使用下面的代码,以便上传和检查文件扩展名和文件大小
更新2 public ActionResult Create([Bind(Include = "anak_ID,Pubdate,kind,title,file,details,link")] HttpPostedFileBase file,announcement announcement) { if (ModelState.IsValid) { db.announcement.Add(announcement); db.SaveChanges(); TempData["notice"] = "Data saved"; var allowedExtensions = new[] { ".pdf",".zip",".rar" }; if (file!= null && file.ContentLength > 0) { var checkextension = Path.GetExtension(file.FileName).ToLower(); if (itm.Contains(checkextension)) { var extension = Path.GetExtension(file.FileName); var path = Path.Combine(Server.MapPath("~/Content/AnnFiles/" + "announcement_" + announcement.anak_ID + extension)); //save File file.SaveAs(path); //prepere announcement announcement.file= @"announcement_" + announcement.anak_ID + extension; //Code for Save data to announcement. db.SaveChanges(); TempData["notice"] = "OK! the file is uploaded"; } else { TempData["notice"] = "Select pdf or zip or rar less than 20Μ"; } } return RedirectToAction("Create",announcement); } return View(announcement); } 创建视图文件字段. <div class="form-group"> @Html.LabelFor(model => model.file,htmlAttributes: new { @class = "control-label col-md-2" }) <div class="col-md-8"> @Html.EditorFor(model => model.file,new { htmlAttributes = new { @class = "input-file",type = "file",name = "file"} }) </div> </div> 创建视图(我显示消息的部分). @if (TempData["notice"] != null) { <div class="alert alert-danger fade in"> <a href="#" class="close" data-dismiss="alert">×</a> @TempData["notice"] </div> } 它将记录保存在db中但在文件字段中保存“System.Web.HttpPostedFileWrapper” 当我更改if语句时,问题就开始了 if (file != null && file .ContentLength > 0) 至 if (file != null && file .ContentLength > 0 && allowedExtensions.Contains(Path.GetExtension(file .FileName).ToLower()) && file .ContentLength <= (20 * 1024)) 所以检查文件扩展名和文件大小. 另一个问题是它总是显示消息 解决方法
看看这些代码.
添加.png进行测试,你可以删除它. if (ModelState.IsValid) { var allowedExtensions = new[] { ".pdf",".rar" }; var checkextension = Path.GetExtension(file.FileName).ToLower(); if (!allowedExtensions.Contains(checkextension)) { TempData["notice"] = "Select pdf or zip or rar less than 20Μ"; } foreach (var itm in allowedExtensions) { if (itm.Contains(checkextension)) { db.announcement.Add(announcement); dbo.SaveChanges(); } } if (file != null && file.ContentLength > 0) { foreach (var itm in allowedExtensions) { if (itm.Contains(checkextension)) { var extension = Path.GetExtension(file.FileName); var path = Path.Combine(Server.MapPath("~/Content/AnnFiles/" + "announcement_" + announcement.anak_ID + extension)); //save File file.SaveAs(path); //prepere announcement announcement.file = @"announcement_" + announcement.anak_ID + extension; //Code for Save data to announcement. db.SaveChanges(); TempData["notice"] = "OK! the file is uploaded"; } } } } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 使用 C# 捕获进程输出
- 如何合理地构建我的ASP.NET MVC 2项目与区域
- asp.net-mvc – 是否可以在MVC和Webforms之间共享母版页?
- asp.net-mvc – 如何将模型加载到_Layout.cshtml并在各种视
- asp.net – 创建适合任何屏幕分辨率的母版页
- asp.net – 组合两个List(Of String)最有效的方法是什么?
- asp.net-mvc-3 – MVC3 – 复杂模型,属性具有相同的字段名称
- asp.net-web-api – ASP.NET Web API HTTP删除405方法不允许
- asp.net – 网页中的电子签名[已关闭]
- asp.net-mvc – 在ASP.NET MVC中保护NullReferenceExceptio
推荐文章
站长推荐
- 有人创建安装程序来部署内部asp.net Web应用程序
- asp.net-mvc – 布局和不同的内容和样式,复杂的M
- asp.net – 关于MVC3中助手的清晰度?
- asp.net-mvc – ascx和.cshtml有什么区别?
- asp.net – 在自动生成的GridView列中防止HTML编
- asp.net – 如何绕过X框架选项:SAMEORIGIN HTTP
- asp.net – MVC2 – 逻辑应该去的基本问题
- asp.net – 如何阅读maxAllowedContentLength
- 创建ASP.NET移动Web应用程序时要记住的事项
- asp.net-mvc – Basic Umbraco 6.1.1 SurfaceCon
热点阅读