Admin.Core/src/platform/ZhonTai.Admin/Core/Helpers/UploadHelper.cs
(开头部分) 2KB这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。
using Microsoft.AspNetCore.Http;
using System;
using System.IO;
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
using FileInfo = ZhonTai.Common.Files.FileInfo;
using Yitter.IdGenerator;
using ZhonTai.Admin.Core.Attributes;
using ZhonTai.Common.Helpers;
using ZhonTai.Admin.Core.Dto;
using ZhonTai.Admin.Core.Configs;
namespace ZhonTai.Admin.Core.Helpers;
/// <summary>
/// 文件上传帮助类
/// </summary>
[SingleInstance]
public class UploadHelper
{
/// <summary>
/// 上传单文件
/// </summary>
/// <param name="file"></param>
/// <param name="config"></param>
/// <param name="args"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public async Task<FileInfo> UploadAsync(IFormFile file, FileUploadConfig config, object args, CancellationToken cancellationToken = default)
{
if (file == null || file.Length < 1)
{
throw ResultOutput.Exception("请上传文件!");
}
//格式限制
if (!config.ContentType.Contains(file.ContentType))
{
throw ResultOutput.Exception("文件格式错误");
}
//大小限制
if (!(file.Length <= config.MaxSize))
{
throw ResultOutput.Exception("文件过大");
}
var fileInfo = new FileInfo(file.FileName, file.Length)
{
UploadPath = config.UploadPath,
RequestPath = config.RequestPath
};
var dateTimeFormat = config.DateTimeFormat.NotNull() ? DateTime.Now.ToString(config.DateTimeFormat) : "";
var format = config.Format.NotNull() ? StringHelper.Format(config.Format, args) : "";
fileInfo.RelativePath = Path.Combine(dateTimeFormat, format).ToPath();
if (!Directory.Exists(fileInfo.FileDirectory))
{
后面还有 25 行代码,解锁后查看完整代码
24 小时内免费解锁 3 个项目,之后 1 积分/个。 规则说明
AI 解读
登录后可用,每次 10 积分,解读结果公开显示在下面。
还没有人解读过这个文件。
