Files
tnb.server/common/Tnb.Common.Core/Manager/Files/IFileManager.cs
2023-03-13 15:00:34 +08:00

114 lines
3.5 KiB
C#

using JNPF.Common.Enums;
using JNPF.Common.Models;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
namespace JNPF.Common.Core.Manager.Files
{
public interface IFileManager
{
#region (json文件)
/// <summary>
/// 导出.
/// </summary>
/// <param name="jsonStr">json数据.</param>
/// <param name="name">文件名.</param>
/// <param name="exportFileType">文件后缀.</param>
/// <returns></returns>
Task<dynamic> Export(string jsonStr, string name, ExportFileType exportFileType = ExportFileType.json);
/// <summary>
/// 导入.
/// </summary>
/// <param name="file">文件.</param>
/// <returns></returns>
string Import(IFormFile file);
#endregion
#region OSS
/// <summary>
/// 根据存储类型上传文件.
/// </summary>
/// <param name="stream">文件流.</param>
/// <param name="directoryPath">保存文件夹.</param>
/// <param name="fileName">新文件名.</param>
/// <returns></returns>
Task<bool> UploadFileByType(Stream stream, string directoryPath, string fileName);
/// <summary>
/// 根据存储类型下载文件.
/// </summary>
/// <param name="filePath">文件路径.</param>
/// <param name="fileDownLoadName">文件下载名.</param>
/// <returns></returns>
Task<FileStreamResult> DownloadFileByType(string filePath, string fileDownLoadName);
/// <summary>
/// 获取指定文件夹下所有文件.
/// </summary>
/// <param name="filePath">文件前缀.</param>
/// <returns></returns>
Task<List<AnnexModel>> GetObjList(string filePath);
/// <summary>
/// 删除文件.
/// </summary>
/// <param name="filePath"></param>
/// <returns></returns>
Task DeleteFile(string filePath);
/// <summary>
/// 判断文件是否存在.
/// </summary>
/// <param name="filePath">文件地址.</param>
/// <returns></returns>
Task<bool> ExistsFile(string filePath);
/// <summary>
/// 获取指定文件流.
/// </summary>
/// <param name="filePath"></param>
/// <returns></returns>
Task<Stream> GetFileStream(string filePath);
/// <summary>
/// 剪切文件.
/// </summary>
/// <param name="filePath">源文件地址.</param>
/// <param name="toFilePath">剪切地址.</param>
/// <returns></returns>
Task MoveFile(string filePath, string toFilePath);
#endregion
/// <summary>
/// 根据类型获取文件存储路径.
/// </summary>
/// <param name="type">文件类型.</param>
/// <returns></returns>
public string GetPathByType(string type);
/// <summary>
/// 分片上传附件.
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
Task<dynamic> UploadChunk([FromForm] ChunkModel input);
/// <summary>
/// 分片组装.
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
Task<FileControlsModel> Merge([FromForm] ChunkModel input);
/// <summary>
/// 获取文件大小.
/// </summary>
/// <param name="size"></param>
/// <returns></returns>
string GetFileSize(long size);
}
}