diff --git a/CnGalWebSite/CnGalWebSite.DrawingBed/Controllers/FileController.cs b/CnGalWebSite/CnGalWebSite.DrawingBed/Controllers/FileController.cs index 24dcb53433..34414ea17b 100644 --- a/CnGalWebSite/CnGalWebSite.DrawingBed/Controllers/FileController.cs +++ b/CnGalWebSite/CnGalWebSite.DrawingBed/Controllers/FileController.cs @@ -42,7 +42,7 @@ public FileController(IHttpClientFactory clientFactory, IWebHostEnvironment webH /// [HttpPost] [AllowAnonymous] - public async Task>> UploadAsync([FromForm] List files, [FromQuery] double x, [FromQuery] double y, [FromQuery] UploadFileType type, [FromQuery] bool gallery=false) + public async Task>> UploadAsync([FromForm] List files, [FromQuery] double x, [FromQuery] double y, [FromQuery] UploadFileType type, [FromQuery] bool gallery = false) { if (files.Count == 0) { @@ -53,14 +53,14 @@ public async Task>> UploadAsync([FromForm] List< { try { - model.Add(await _fileService.UploadFormFile(item,gallery, x, y, type)); + model.Add(await _fileService.UploadFormFile(item, gallery, x, y, type)); } catch (Exception ex) { model.Add(new UploadResult { Uploaded = false, - FileName=item.Name, + FileName = item.Name, Error = ex.Message }); } @@ -101,7 +101,7 @@ public async Task> linkToImgUrlAsync([FromQuery] stri try { - var result= await _fileService.TransferDepositFile(url,gallery, x, y, type); + var result = await _fileService.TransferDepositFile(url, gallery, x, y, type); return result; } @@ -126,18 +126,19 @@ public async Task> linkToImgUrlAsync([FromQuery] stri [AllowAnonymous] public async Task> TransferDepositToTucangCCAsync([FromQuery] string url) { - string path=""; + string path = ""; try { path = await _fileService.SaveFileFromUrl(url, UploadFileType.Image); - var result = await _uploadService.UploadToTucangCC(path); + var sha1 = _fileService.GetSHA1(path); + var result = await _uploadService.UploadToTucangCC(path, $"{sha1}.png"); _fileService.DeleteFile(path); return new UploadResult { Url = result, OriginalUrl = url, - Uploaded=true + Uploaded = true }; } catch (Exception ex) @@ -212,7 +213,7 @@ public async Task> GetSameFileAsync([FromQuery] string sha1 public async Task> GetRandomFileAsync([FromQuery] UploadFileType type) { var random = new Random(); - var length = await _uploadRecordRepository.CountAsync(s => string.IsNullOrWhiteSpace(s.Url) == false&&s.Type==type); + var length = await _uploadRecordRepository.CountAsync(s => string.IsNullOrWhiteSpace(s.Url) == false && s.Type == type); if (length > 0) { var p = random.Next(0, length); diff --git a/CnGalWebSite/CnGalWebSite.DrawingBed/Services/FileService.cs b/CnGalWebSite/CnGalWebSite.DrawingBed/Services/FileService.cs index 0b256d01ec..5adbaa76c8 100644 --- a/CnGalWebSite/CnGalWebSite.DrawingBed/Services/FileService.cs +++ b/CnGalWebSite/CnGalWebSite.DrawingBed/Services/FileService.cs @@ -181,7 +181,7 @@ private async Task UploadLocalFileToServer(string filePath, string shar1 if (gallery && type == UploadFileType.Image) { - url = await _uploadService.UploadToTucangCC(filePath) + "?" + url; + url = await _uploadService.UploadToTucangCC(filePath,$"{GetSHA1(filePath)}.png") + "?" + url; } return url; @@ -233,7 +233,7 @@ public async Task SaveFileFromUrl(string url, UploadFileType type) return newPath; } - private string GetSHA1(string path) + public string GetSHA1(string path) { try { diff --git a/CnGalWebSite/CnGalWebSite.DrawingBed/Services/IFileService.cs b/CnGalWebSite/CnGalWebSite.DrawingBed/Services/IFileService.cs index dd11e345cc..b2ee3dedb7 100644 --- a/CnGalWebSite/CnGalWebSite.DrawingBed/Services/IFileService.cs +++ b/CnGalWebSite/CnGalWebSite.DrawingBed/Services/IFileService.cs @@ -12,5 +12,7 @@ public interface IFileService Task SaveFileFromUrl(string url, UploadFileType type); void DeleteFile(string path); + + string GetSHA1(string path); } } diff --git a/CnGalWebSite/CnGalWebSite.DrawingBed/Services/IUploadService.cs b/CnGalWebSite/CnGalWebSite.DrawingBed/Services/IUploadService.cs index 5c34ea6eaf..6ed23de619 100644 --- a/CnGalWebSite/CnGalWebSite.DrawingBed/Services/IUploadService.cs +++ b/CnGalWebSite/CnGalWebSite.DrawingBed/Services/IUploadService.cs @@ -6,6 +6,6 @@ public interface IUploadService Task UploadToAliyunOSS(string filePath, string shar1); - Task UploadToTucangCC(string filePath); + Task UploadToTucangCC(string filePath, string uploadName); } } diff --git a/CnGalWebSite/CnGalWebSite.DrawingBed/Services/UploadService.cs b/CnGalWebSite/CnGalWebSite.DrawingBed/Services/UploadService.cs index 54f405dad0..8ccc3eade6 100644 --- a/CnGalWebSite/CnGalWebSite.DrawingBed/Services/UploadService.cs +++ b/CnGalWebSite/CnGalWebSite.DrawingBed/Services/UploadService.cs @@ -122,7 +122,7 @@ public async Task UploadToTencentOSS(string filePath, string shar1) /// 转存图片到公共图床 /// /// - public async Task UploadToTucangCC(string filePath) + public async Task UploadToTucangCC(string filePath, string uploadName) { try { @@ -132,7 +132,7 @@ public async Task UploadToTucangCC(string filePath) content.Add( content: fileContent, name: "file", - fileName: "test.png"); + fileName: uploadName); content.Add(new StringContent(_configuration["TucangCCAPIToken"]), "token"); var response = await _httpClient.PostAsync(_configuration["TucangCCAPIUrl"], content); @@ -143,7 +143,7 @@ public async Task UploadToTucangCC(string filePath) if (result["code"].ToObject() == 200) { - var url= $"{_configuration["CustomTucangCCUrl"]}{result["data"]["url"].ToObject().Split('/').LastOrDefault()}"; + var url = $"{_configuration["CustomTucangCCUrl"]}{result["data"]["url"].ToObject().Split('/').LastOrDefault()}"; await _httpClient.GetAsync(url); _logger.LogInformation("成功上传图片到TucangCC:{url}", url); return url;