附件添加

本文介绍了使用VS开发的一个上传附件的功能,通过HttpPostedFileBase接收文件,限制上传大小为20MB。根据文件扩展名使用正则表达式判断文件类型,如视频、音频、文本、文档或图片,并将文件信息保存到session中。点击添加附件,选择文件并进行类型判断。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

开发工具与关键技术:  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);

        }

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值