oss板块

This commit is contained in:
fuenmao
2026-08-24 18:16:08 +08:00
parent 0931e1f343
commit 4679bd6c13
13 changed files with 341 additions and 12 deletions
@@ -9,10 +9,32 @@ namespace SimpleAdmin.Web.Core;
public class OnboardingContractTemplateController
{
private readonly IOnboardingContractTemplateService _service;
private readonly IFileService _fileService;
public OnboardingContractTemplateController(IOnboardingContractTemplateService service)
public OnboardingContractTemplateController(
IOnboardingContractTemplateService service,
IFileService fileService)
{
_service = service;
_fileService = fileService;
}
/// <summary>
/// 将入职合同 DOCX 模板上传到阿里云 OSS。
/// </summary>
[HttpPost("file/upload-docx")]
[Consumes("multipart/form-data")]
[RequestSizeLimit(20 * 1024 * 1024)]
public async Task<long> UploadDocx([FromForm] IFormFile file)
{
if (file == null || file.Length == 0)
throw Oops.Bah("请选择需要上传的 DOCX 文件");
var suffix = Path.GetExtension(file.FileName);
if (!string.Equals(suffix, ".docx", StringComparison.OrdinalIgnoreCase))
throw Oops.Bah("合同模板仅支持 DOCX 文件");
return await _fileService.UploadFile(SysDictConst.FILE_ENGINE_ALIYUN_OSS, file);
}
/// <summary>
@@ -59,11 +59,14 @@ public class OnboardingPublicSubmissionController
[HttpPost("upload-material")]
[Consumes("multipart/form-data")]
[RequestSizeLimit(20 * 1024 * 1024)]
public async Task UploadMaterial([FromForm] string token, [FromForm] long materialTypeId, IFormFile file)
public async Task UploadMaterial(
[FromQuery] string token,
[FromQuery] long materialTypeId,
[FromForm] IFormFile file)
{
if (file == null || file.Length == 0)
{
throw new ArgumentException("请选择需要上传的文件");
throw Oops.Bah("请选择需要上传的文件");
}
await _service.ValidateMaterialUpload(new OnboardingMaterialUploadValidationInput
@@ -74,7 +77,7 @@ public class OnboardingPublicSubmissionController
FileLength = file.Length
});
var fileId = await _fileService.UploadFile(SysDictConst.FILE_ENGINE_LOCAL, file);
var fileId = await _fileService.UploadFile(SysDictConst.FILE_ENGINE_ALIYUN_OSS, file);
await _service.SaveMaterial(new OnboardingSaveMaterialInput
{
Token = token,