This commit is contained in:
2023-05-31 10:19:05 +08:00
parent 1b65a7a9e5
commit 9c621c75cd
238 changed files with 9905 additions and 4034 deletions

View File

@@ -91,6 +91,7 @@ namespace JNPF.Common.Core.Manager.Files
{
try
{
filePath = filePath.Replace(@",", "/");
switch (KeyVariable.FileStoreType)
{
case OSSProviderType.Invalid:
@@ -169,6 +170,7 @@ namespace JNPF.Common.Core.Manager.Files
{
try
{
filePath = filePath.Replace(@",", "/");
switch (KeyVariable.FileStoreType)
{
case OSSProviderType.Invalid:
@@ -196,6 +198,7 @@ namespace JNPF.Common.Core.Manager.Files
{
try
{
filePath = filePath.Replace(@",", "/");
switch (KeyVariable.FileStoreType)
{
case OSSProviderType.Invalid:
@@ -221,6 +224,7 @@ namespace JNPF.Common.Core.Manager.Files
{
try
{
filePath = filePath.Replace(@",", "/");
switch (KeyVariable.FileStoreType)
{
case OSSProviderType.Invalid:
@@ -248,6 +252,7 @@ namespace JNPF.Common.Core.Manager.Files
{
try
{
filePath = filePath.Replace(@",", "/");
switch (KeyVariable.FileStoreType)
{
case OSSProviderType.Invalid:
@@ -266,6 +271,36 @@ namespace JNPF.Common.Core.Manager.Files
throw Oops.Oh(ErrorCode.D1804);
}
}
/// <summary>
/// 复制文件.
/// </summary>
/// <param name="filePath">源文件地址.</param>
/// <param name="toFilePath">剪切地址.</param>
/// <returns></returns>
public async Task CopyFile(string filePath, string toFilePath)
{
try
{
filePath = filePath.Replace(@",", "/");
switch (KeyVariable.FileStoreType)
{
case OSSProviderType.Invalid:
FileHelper.CopyFile(filePath, toFilePath);
break;
default:
filePath = filePath.Replace(@"\", "/");
var bucketName = KeyVariable.BucketName;
await _oSSServiceFactory.Create(KeyVariable.FileStoreType.ToString()).CopyObjectAsync(bucketName, filePath, bucketName, toFilePath);
await _oSSServiceFactory.Create(KeyVariable.FileStoreType.ToString()).RemoveObjectAsync(bucketName, filePath);
break;
}
}
catch (AppFriendlyException ex)
{
throw Oops.Oh(ErrorCode.D1804);
}
}
#endregion
#region (json文件)
@@ -286,8 +321,7 @@ namespace JNPF.Common.Core.Manager.Files
var stream = new MemoryStream(byteList);
await UploadFileByType(stream, _filePath, _fileName);
_cacheManager.Set(_fileName, string.Empty);
return new
{
return new {
name = _fileName,
url = string.Format("/api/file/Download?encryption={0}", DESCEncryption.Encrypt(string.Format("{0}|{1}|json", _userManager.UserId, _fileName), "JNPF"))
};
@@ -375,7 +409,8 @@ namespace JNPF.Common.Core.Manager.Files
fs.Flush();
fs.Close();
Stream stream = new FileStream(Path.Combine(directoryPath, saveFileName), FileMode.Open, FileAccess.Read, FileShare.Read);
var flag = await UploadFileByType(stream, GetPathByType(input.type), saveFileName);
GetChunkModel(input, saveFileName);
var flag = await UploadFileByType(stream, input.folder, saveFileName);
var fileSize = stream.Length;
if (flag)
{
@@ -383,7 +418,7 @@ namespace JNPF.Common.Core.Manager.Files
stream.Close();
FileHelper.DeleteDirectory(directoryPath);
}
return new FileControlsModel { name = saveFileName, url = string.Format("/api/file/Image/annex/{0}", saveFileName), fileExtension = input.extension, fileSize = input.fileSize.ParseToLong() };
return new FileControlsModel { name = input.fileName, url = string.Format("/api/file/Image/annex/{0}", input.fileName), fileExtension = input.extension, fileSize = input.fileSize.ParseToLong(), fileName = input.fileName };
}
catch (AppFriendlyException ex)
{
@@ -467,5 +502,39 @@ namespace JNPF.Common.Core.Manager.Files
}
return fileName;
}
/// <summary>
/// 获取地址和文件名.
/// </summary>
/// <param name="input"></param>
/// <param name="saveFileName"></param>
public void GetChunkModel(ChunkModel input, string saveFileName)
{
var floder = GetPathByType(input.type);
var fileNameStr = string.Empty;
// 自定义路径
if (input.pathType.Equals("selfPath"))
{
if (input.isAccount.Equals("1"))
{
floder = Path.Combine(floder, _userManager.User.Account);
fileNameStr = Path.Combine(fileNameStr, _userManager.User.Account);
}
if (input.folder.IsNotEmptyOrNull())
{
floder = Path.Combine(floder, input.folder.Trim('/'));
fileNameStr = Path.Combine(fileNameStr, input.folder);
}
fileNameStr = Path.Combine(fileNameStr, saveFileName);
fileNameStr = fileNameStr.Replace("\\", ",");
fileNameStr = fileNameStr.Replace("/", ",");
}
else
{
fileNameStr = saveFileName;
}
input.fileName = fileNameStr;
input.folder = floder;
}
}
}