/// <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)
Asp.Net Core Webapi 文件上传、下载、删除常用功能接口
于 2024-06-06 15:08:40 首次发布