//静态文件上传 返回文件名称、路径 自动保存到数据库里
public Rep<List<AttachmentModel>> UploadAttachment(List<IFormFile> files)
{
if (files == null || files.Count == 0)
throw new BusinessException("没有上传任何文件!");
if (files.Where(o => o.Length == 0).Count() > 0)
throw new BusinessException("文件内容不能为空!");
var list = new List<AttachmentModel>();
var itemID = Guid.NewGuid().ToString();
foreach (var file in files)
{
using (var fs = file.OpenReadStream())
{
var att = attBo.CreateToTempFile(Path.GetFileName(file.FileName), fs, itemID);
list.Add(att);
}
}
return Result(list);
}
/// <summary>
/// 将文件流保存到临时文件区域
/// </summary>
/// <param name="realFileName"></param>
/// <param name="stream"></param>
/// <param name="randomStorageFileName"></param>
/// <returns></returns>
public AttachmentModel CreateToTempFile(string realFileName, Stream stream,string itemID)
{
var n = $"Default/{DateTime.Now.ToString("yyyy-MM-dd")}/{Guid.NewGuid().ToString()}{Path.GetExtension(realFileName)}";
var att = new CmsAttachmentEntity
{
ID = Guid.NewGuid().ToString(),
FileName = realFileName,
CreatedBy = loginState.ID,
CreatedDate = DateTime.Now,
FileSize = stream.Length,
FileContent = stream.ReadAllBytes(),
StorageFileName = n,
ItemID = itemID
};
fs.Save(att.StorageFileName, stream, false);
attDao.Insert(att);
return AttachmentToModel(att);
}
public static AttachmentModel AttachmentToModel(CmsAttachmentEntity att)
{
if (att == null)
return null;
var model = new AttachmentModel
{
ID = att.ID,
FileName = att.FileName,
FileSize = att.FileSize
};
return model;
}
public class AttachmentModel
{
/// <summary>
///
/// </summary>
public string FileName { get; set; }
/// <summary>
///
/// </summary>
public double FileSize { get; set; }
/// <summary>
///
/// </summary>
public string ID { get; set; }
}