我有一个文件上传功能,用户可以上传文件.我想限制用户上传某些文件类型.允许的类型是:.doc,.xlsx,.txt,.jpeg.
我怎么能这样做?
这是我的实际文件上传代码:
public ActionResult UploadFile(string AttachmentName,BugModel model) { BugModel bug = null; if (Session["CaptureData"] == null) { bug = model; } else { bug = (BugModel)Session["CaptureData"]; } foreach (string inputTagName in Request.Files) { HttpPostedFileBase file1 = Request.Files[inputTagName]; if (file1.ContentLength > 0) { string path = "/Content/UploadedFiles/" + Path.GetFileName(file1.FileName); string savedFileName = Path.Combine(Server.MapPath("~" + path)); file1.SaveAs(savedFileName); BugAttachment attachment = new BugAttachment(); attachment.FileName = "~" + path.ToString(); attachment.AttachmentName = AttachmentName; attachment.AttachmentUrl = attachment.FileName; bug.ListFile.Add(attachment); model = bug; Session["CaptureData"] = model; } } ModelState.Clear(); return View("LoadBug",bug); }
解决方法
要验证的第一件事是file1.FileName中包含的文件扩展名是否与允许的扩展名之一匹配.然后,如果您确实希望确保用户未将某些其他文件类型重命名为允许的扩展名,则需要查看该文件的内容以识别它是否是允许的类型之一.
以下是如何检查文件扩展名是否属于预定义扩展名列表的示例:
var allowedExtensions = new[] { ".doc",".xlsx",".txt",".jpeg" }; var extension = Path.GetExtension(file1.FileName); if (!allowedExtensions.Contains(extension)) { // Not allowed }
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。