静态文件上传

 

//静态文件上传 返回文件名称、路径 自动保存到数据库里

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; }
    }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值