Example #1
0
 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.");
     }
 }
Example #2
0
        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"])));
        }