开发工具与关键技术: 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);
}
点击添加附件,双击想要的上床的文件。通过正则表达式来判断文件所属的类型