mirror of
https://github.com/DrizzleTime/Foxel.git
synced 2026-06-02 22:20:01 +08:00
feat(upload): add image format conversion and quality settings for uploads #6
This commit is contained in:
28
Models/Enums/ImageFormat.cs
Normal file
28
Models/Enums/ImageFormat.cs
Normal file
@@ -0,0 +1,28 @@
|
||||
namespace Foxel.Models.Enums;
|
||||
|
||||
/// <summary>
|
||||
/// 支持的图片格式枚举
|
||||
/// </summary>
|
||||
public enum ImageFormat
|
||||
{
|
||||
/// <summary>
|
||||
/// 保持原格式
|
||||
/// </summary>
|
||||
Original = 0,
|
||||
|
||||
/// <summary>
|
||||
/// JPEG格式
|
||||
/// </summary>
|
||||
Jpeg = 1,
|
||||
|
||||
/// <summary>
|
||||
/// PNG格式
|
||||
/// </summary>
|
||||
Png = 2,
|
||||
|
||||
/// <summary>
|
||||
/// WebP格式
|
||||
/// </summary>
|
||||
WebP = 3,
|
||||
|
||||
}
|
||||
@@ -1,16 +1,30 @@
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using Foxel.Models.DataBase;
|
||||
using Foxel.Models.Enums;
|
||||
using Foxel.Services.Attributes;
|
||||
|
||||
namespace Foxel.Models.Request.Picture;
|
||||
|
||||
public record UploadPictureRequest
|
||||
{
|
||||
[Required] public IFormFile File { get; set; } = null!;
|
||||
[Required(ErrorMessage = "文件不能为空")]
|
||||
public IFormFile File { get; set; } = null!;
|
||||
|
||||
public int? Permission { get; set; } = 1;
|
||||
[Range(0, 2, ErrorMessage = "权限类型必须是0(公开)、1(私有)或2(仅关注者)")]
|
||||
public int? Permission { get; set; } = 0;
|
||||
|
||||
public int? AlbumId { get; set; } = null;
|
||||
|
||||
public StorageType? StorageType { get; set; } = null;
|
||||
public int? AlbumId { get; set; }
|
||||
|
||||
public StorageType? StorageType { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 目标图片格式,默认为保持原格式
|
||||
/// </summary>
|
||||
public ImageFormat ConvertToFormat { get; set; } = ImageFormat.Original;
|
||||
|
||||
/// <summary>
|
||||
/// 图片质量(仅对JPEG和WebP有效,1-100)
|
||||
/// </summary>
|
||||
[Range(1, 100, ErrorMessage = "图片质量必须在1-100之间")]
|
||||
public int Quality { get; set; } = 95;
|
||||
}
|
||||
Reference in New Issue
Block a user