我使用下面的代码,以便上传和检查文件扩展名和文件大小
更新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))
另一个问题是它总是显示消息
“选择pdf或zip或rar小于20M”并保存记录.我因为System.Web.HttpPostedFileWrapper值而退出.我想要实现的是当我选择不允许的扩展名和表中的文件名时,不保存记录.
先感谢您
解决方法
看看这些代码.
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"; } } } } }
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。