public FileResult DownloadDocument(int fileNumber, string id) { NPQIP.Models.File file = _db.Files.Find(fileNumber); if (ModelState.IsValid) { //return File(file.FileUrl, file.FileType, file.FileName); return(file.FileExtention == ".pdf" ? File(file.FileUrl, file.FileType) : File(file.FileUrl, file.FileType, "File" + file.FileID.ToString() + file.FileExtention)); } else { throw new HttpException(404, "File not Found."); } }
public ActionResult Upload(FormCollection formCollection) { HttpPostedFileBase uploadfile = Request.Files["uploadfile"]; var validFileTypes = new string[] { "application/pdf", "application/msword", "application/postscript", "application/zip", "application/x-compressed", "application/x-zip-compressed", "application/octet-stream", "multipart/x-zip", "multipart/x-gzip", "application/x-gzip", "application/vnd.ms-excel", "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "application/vnd.openxmlformats-officedocument.wordprocessingml.document", "image/bmp", "image/x-windows-bmp", "image/gif", "image/jpeg", "image/pjpeg", "image/png", "image/tiff", "image/x-tiff" }; if (uploadfile == null || uploadfile.ContentLength == 0) { ModelState.AddModelError("FileUpload", "This field is required"); ViewBag.Error = "This field is required"; } else if (!validFileTypes.Contains(uploadfile.ContentType)) { ModelState.AddModelError("FileUpload", "Please choose either a pdf, doc or docx file, or a EPS, BMP, GIF, JPG, PNG or tif image, or zip file."); ViewBag.Error = "Please choose either a pdf, doc or docx file, or a EPS, BMP, GIF, JPG, PNG or tif image, or zip file."; } else if (uploadfile.ContentLength > 104857600) { ModelState.AddModelError("FileUpload", "The maximum size is 100MB."); ViewBag.Error = "The maximum size is 100MB."; } if (ModelState.IsValid) { var file = new NPQIP.Models.File { PublicationPublicationID = Convert.ToInt32(formCollection["publicationid"]), PublicationPublicationNumber = formCollection["publicationnumber"], FileName = uploadfile.FileName, FileType = uploadfile.ContentType, DeleteFile = false }; var path = "~/Content/upload"; if (!Directory.Exists(Server.MapPath(path))) { Directory.CreateDirectory(Server.MapPath(path)); } //DirectoryInfo di = new DirectoryInfo(path); //var folder = Server.MapPath(file.RecordRecordID.ToString()); //DirectoryInfo d2 = di.CreateSubdirectory(folder); var uploadDir = String.Format("{0}/{1}", path, formCollection["publicationnumber"]); if (!Directory.Exists(Server.MapPath(uploadDir))) { Directory.CreateDirectory(Server.MapPath(uploadDir)); } file.Comments = formCollection["inputcomments"]; if (formCollection["inputfilename"] != null && formCollection["inputfilename"].Length > 0) { file.FileName = formCollection["inputfilename"]; } else { file.FileName = Path.GetFileNameWithoutExtension(uploadfile.FileName); } file.FileExtention = Path.GetExtension(uploadfile.FileName); var filelist = from f in _db.Files where f.PublicationPublicationID == file.PublicationPublicationID select f.FileName; if (filelist.Contains(file.FileName)) { file.FileName = "new_" + file.FileName; } if (formCollection["Comments"] != null && formCollection["inputfilename"].Length > 0) { file.Comments = formCollection["Comments"]; } file.FileUrl = Path.Combine(Server.MapPath(uploadDir), file.FileName + file.FileExtention); uploadfile.SaveAs(file.FileUrl); file.EntryUser = User.Identity.Name; _db.Files.Add(file); _db.SaveChanges(); return(RedirectToAction("Upload", file.PublicationPublicationID)); } return(RedirectToAction("Upload", Convert.ToInt32(TempData["publicationid"]))); }