Asp.Net Core Webapi 文件上传、下载、删除常用功能接口

 /// <summary>
 /// 上传
 /// </summary>
 /// <param name="folder">文件夹</param>
 /// <param name="files">文件</param>
 /// <returns></returns>
 [HttpPost("Upload")]
 public async Task<ExecResult> Upload(string folder, List<IFormFile> files)
 {
   
   
     var results = new List<FileUploadResult>();
     try
     {
   
   
         //1 KB = 1024 Bytes     1 MB = 1024 KB
         if (files == null || !files.Any()) throw new Exception("请选择文件上传!");
         var fileNames = files.Select(s => s.FileName).ToArray();
         if (!FileExtension.IsMatchFormat(fileNames)) throw new Exception("请上传正确格式的文件!");

         long limit = 25 * 1024 * 1024;//上限20M
         long totalSize = files.Sum(f => f.Length);
         if (totalSize > limit) throw new Exception("文件大小不能超过25M");
         string rootPath = _environment.ContentRootPath;
         string tagetDirectoryPath = Path.Combine(rootPath, rootDirectory, folder ?? "");
         if(!Directory.Exists(tagetDirectoryPath))
         {
   
   
             var directoryInfo = new DirectoryInfo(tagetDirectoryPath);
             directoryInfo.Create();
         }

         foreach (var formFile in files)
         {
   
   
             var result = new FileUploadResult();
             if (formFile.Length > 0)
             {
   
   
                 try
                 {
   
   
                     var guid = Guid.NewGuid();
                     string fileName = formFile.FileName;
                     string ext = Path.GetExtension(fileName);
                     string newFileName = guid.ToString()+ ext;
                     var filePath = Path.Combine(tagetDirectoryPath, newFileName);
                     using (var stream = System.IO.File.Create(filePath)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值