多文件上传:
/// <summary>
/// 文件保存
/// </summary>
/// <param name="Description">文件描述</param>
/// <param name="refTable">文件对应的业务表</param>
/// <param name="RefRecordID">文件对应的业务表主键</param>
/// <returns></returns>
[HttpPost]
[Route("api/UploadAPI/UploadFile/")]
public bool UploadFile(string refTable, string RefRecordID,string Description = null)
{
bool uploadResult = false;
string FileEextension = string.Empty;//获取文件后缀名
string Filename = string.Empty;//用于新增文件名
string strPath = string.Empty;
UploadService ser = new UploadService();
HttpFileCollection files = System.Web.HttpContext.Current.Request.Files;
HttpPostedFile file;
IList<VSAADocument> docList = new List<VSAADocument>();
var userid = VSAAUserIdentity.GetUserInfo().ID;//登陆者
string[] Descriptions;
if (!Description.IsNullOrEmptyOrWhiteSpace())
{
Descriptions = Description.Split('#');//获得图片描述的文本框字符串数组,为对应的图片的描述
}
else
{
Descriptions = new string[0];
}
if (System.Web.HttpContext.Current.Request.Files.Count > 0)
{
for (int i = 0; i < System.Web.HttpContext.Current.Request.Files.Count; i++)
{
FileEextension = Path.GetExtension(files[i].FileName).ToLower();//获取文件后缀名
//判断文件类型存入不同文件夹
if (FileEextension == ".doc" || FileEextension == ".docx")
{
Filename = "word\\";
}
else if (FileEextension == ".xls" || FileEextension == ".xlsx")
{
Filename = "Excel\\";
}
else if (FileEextension == ".ppt" || FileEextension == ".pptx")
{
Filename = "PPT\\";
}
else if (FileEextension == ".pdf")
{
Filename = "pdf\\";
}
else if (FileEextension == ".jpg" || FileEextension == ".jpeg" || FileEextension == ".png" || FileEextension == ".gif")
{
Filename = "image\\";
}
else if ("(.mp4)|(.avi)|(.flv)|(.rmvb)|(.wmv)".Contains(FileEextension))
{
Filename = "vedio\\";
}
else
{
Filename = "Other\\";
}
strPath = UploadPath + Filename;
if (Directory.Exists(strPath) == false)
{
Directory.CreateDirectory(strPath);
}
VSAADocument docModel = new VSAADocument();
docModel.DocumentID = Guid.NewGuid().ToString();
docModel.RefTable = refTable;
docModel.RefRecordID = RefRecordID;
docModel.DocumentName = System.Web.HttpContext.Current.Request.Files[i].FileName;
docModel.DocumentPath = strPath + docModel.DocumentID + FileEextension;
docModel.FileSize = Math.Round(Convert.ToDecimal(System.Web.HttpContext.Current.Request.Files[i].ContentLength / 1024 / 1024), 2, MidpointRounding.AwayFromZero);
docModel.FileType = FileEextension;
if (Descriptions.Length > 0 && !string.IsNullOrEmpty(Descriptions[i]))
{
docModel.Description = Descriptions[i];
}
if (!userid.IsNullOrEmptyOrWhiteSpace())
{
docModel.Userid = userid;
}
docList.Add(docModel);
System.Web.HttpContext.Current.Request.Files[i].SaveAs(@strPath + docModel.DocumentID + FileEextension);
}
uploadResult = ser.Upload(docList);//文件保存到数据库
}
else
{
uploadResult = true;
}
return uploadResult;
}
根据文件路径下载文件,并更改文件名:
/// <summary>
/// 下载
/// </summary>
/// <param name="FilePath"></param>
/// <param name="documentId"></param>
/// <returns></returns>
[Route("api/UploadAPI/DownloadFile/")]
public HttpResponseMessage DownloadFile(string FilePath,string documentId)
{
try
{
UploadService ser = new UploadService();
if (FilePath.IsNullOrEmptyOrWhiteSpace() || documentId.IsNullOrEmptyOrWhiteSpace())
{
return new HttpResponseMessage(HttpStatusCode.NotFound);
}
string FileName = ser.GetDocData(documentId).DocumentName;
var stream = new FileStream(FilePath, FileMode.Open);
HttpResponseMessage response = new HttpResponseMessage(HttpStatusCode.OK);
response.Content = new StreamContent(stream);
response.Content.Headers.ContentType = new MediaTypeHeaderValue("application/octet-stream");
response.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment")
{
FileName = FileName
};
return response;
}
catch
{
return new HttpResponseMessage(HttpStatusCode.NoContent);
}
}