开发工具与关键技术:  vs       上传附件

作者:      周乐献       

撰写时间:   2019      年        6月   18    日

public ActionResult UploadAttachment(HttpPostedFileBase attachmentFile)

        {

            try

            {

                if (attachmentFile.ContentLength > 0)

                {

                    if (attachmentFile.ContentLength > (20 * 1024 * 1024))

                    {

              return Json("上传的文件不能大于20M",JsonRequestBehavior.AllowGet);

                    }

                    List<Files> sessionFiles = new List<Files>();

                    if (Session["sessionFiles"] != null)

                    {

                        sessionFiles = Session["sessionFiles"] as List<Files>;

                    }

                    //检查保存附件的目录是否存在,不存在就创建

                    if (!Directory.Exists(Server.MapPath("~/Document/Temp/")))

                    {

                     Directory.CreateDirectory(Server.MapPath("~/Document/Temp/"));

                    }

                    //文件类型

      string fileExtension = Path.GetExtension(attachmentFile.FileName);

                    //不包含文件扩展名的名称

      String fileName=Path.GetFileNameWithoutExtension(attachmentFile.FileName);

                    //原始文件名称

                    string oldFileName = attachmentFile.FileName;

                    //文件名称,添加时间字符串,避免文件名称相同

fileName = fileName + DateTime.Now.ToString

("yyyy-MM-dd-HH-mm-ss-ffff") + fileExtension;

                    //保存文件的路径

    string filePath = Server.MapPath("~/Document/Temp/") + fileName;

                    //保存文件

                    attachmentFile.SaveAs(filePath);

                    //文件格式

                    int fileTypeId;

                    string fileTypeName;

                    fileExtension = fileExtension.ToLower();

正则判断

if("(.mp4)|(.avi)|(.flv)|(.rmvb|(.rm)|(.3gp)|(.mkv)|(.dvd)|(.mpg)|(.mov)".

Contains(fileExtension))

                    {

                        fileTypeId = 1;//视频

                        fileTypeName = "视频";

                    }

                    else if ("(.mp3)|(.wav)|(.cd)|(.ogg)|(.ape)|(.au)".Contains(fileExtension))

                    {

                        fileTypeId = 2;//音频

                        fileTypeName = "音频";

                    }

                    else if ("(.txt)|(.text)".Contains(fileExtension))

                    {

                        fileTypeId = 3;//文本

                        fileTypeName = "文本";

                    }

                    else if ("(.doc)|(.docx)|(.xsl)|(.xslx)|(.ppt)|(.pptx)".Contains(fileExtension))

                    {

                        fileTypeId = 4;//文档

                        fileTypeName = "文档";

                    }

                    else if ("(.gif)|(.jpg)|(.bmp)|(.jpeg)|(.png)".Contains(fileExtension))

                    {

                        fileTypeId = 5;//图片

                        fileTypeName = "图片";

                    }

                    else

                    {

                        fileTypeId = 7;//其他

                        fileTypeName = "其他";

                    }

 

                    Files myfiles = new Files

                    {

                        FileTypeID = fileTypeId,

                        FileTypeName = fileTypeName,

                        FileName = fileName,

                        FileGuid = Guid.NewGuid().ToString("N"),        

Files = "<a href=\"/SystemManagements/IssuanceNotice/DownloadAttachment?fileName=" + fileName + "\" target=\"_blank\">" + oldFileName + "</a>"

                    };

                    if (sessionFiles != null)

                    {

                        sessionFiles.Add(myfiles);

                        //把上传的附件记录到session

                        Session["sessionFiles"] = sessionFiles;

 

                        return Json(true, JsonRequestBehavior.AllowGet);

                    }

                }

            }

            catch (Exception e)

            {

                Console.WriteLine(e);

            }

            return Json(false, JsonRequestBehavior.AllowGet);

        }

点击添加附件,双击想要的上床的文件。通过正则表达式来判断文件所属的类型

附件添加

附件添加

附件添加

相关文章: