//using IRaCIS.Core.Application.Helper; //using MassTransit; //using Microsoft.AspNetCore.Authorization; //using Microsoft.AspNetCore.Builder; //using Microsoft.AspNetCore.Hosting; //using Microsoft.AspNetCore.Http; //using Microsoft.AspNetCore.Mvc; //using Microsoft.AspNetCore.StaticFiles; //using RestSharp; //using SharpCompress.Common; //using System; //using System.Collections.Generic; //using System.Linq; //using System.Text; //using System.Threading.Tasks; //namespace IRaCIS.Core.Application.Service.MinimalApiService //{ // /// // /// 上传文件转PDF 或者给url 这边下载然后转PDF // /// // /// // /// // [ApiExplorerSettings(GroupName = "Institution")] // public class FileToPDFService(IWebHostEnvironment _hostEnvironment) : ServiceBase // { // [AllowAnonymous] // [RoutePattern(HttpMethod = "Post")] // public async Task UploadFileAsync([FromForm] IFormFile file) // { // var tempFileName = NewId.NextGuid() + file.FileName; // var tempPDFName = Path.GetFileNameWithoutExtension(tempFileName) + ".pdf"; // // 获取wwwroot目录 // var wwwRootPath = Path.Combine(FileStoreHelper.GetIRaCISRootDataFolder(_hostEnvironment), "temp"); // // 检查wwwroot/temp目录是否存在,不存在则创建 // if (!Directory.Exists(wwwRootPath)) // { // Directory.CreateDirectory(wwwRootPath); // } // // 文件保存路径 // var pdfFilePath = Path.Combine(wwwRootPath, tempPDFName); // var tempFilePath = Path.Combine(wwwRootPath, tempFileName); // using var stream = File.OpenWrite(tempFilePath); // await file.CopyToAsync(stream); // FileConvertHelper.ConvertWordToPdf(tempFilePath, Path.GetDirectoryName(pdfFilePath)); // var fileBytes = await File.ReadAllBytesAsync(pdfFilePath); // // 清理临时上传的文件和pdf // if (File.Exists(pdfFilePath)) // { // File.Delete(pdfFilePath); // } // if (File.Exists(tempFilePath)) // { // File.Delete(tempFilePath); // } // new FileExtensionContentTypeProvider().Mappings.TryGetValue(Path.GetExtension(tempPDFName), out var contentType); // return Results.File(fileBytes, contentType); // } // public async Task GetPDFFileAsync(string fileUrl) // { // var tempFileName = NewId.NextGuid() + Path.GetFileName(fileUrl); // var tempPDFName = Path.GetFileNameWithoutExtension(tempFileName) + ".pdf"; // // 获取wwwroot目录 // var wwwRootPath = Path.Combine(FileStoreHelper.GetIRaCISRootDataFolder(_hostEnvironment), "temp"); // // 检查wwwroot/temp目录是否存在,不存在则创建 // if (!Directory.Exists(wwwRootPath)) // { // Directory.CreateDirectory(wwwRootPath); // } // // 文件保存路径 // var pdfFilePath = Path.Combine(wwwRootPath, tempPDFName); // var tempFilePath = Path.Combine(wwwRootPath, tempFileName); // //请求url获取文件 // var client = new RestClient(fileUrl); // var request = new RestRequest(fileUrl, Method.Get); // var response = await client.ExecuteAsync(request); // // 检查响应是否成功 // if (response.IsSuccessful) // { // // 将响应内容写入到本地文件 // await File.WriteAllBytesAsync(tempFilePath, response.RawBytes); // FileConvertHelper.ConvertWordToPdf(tempFilePath, Path.GetDirectoryName(pdfFilePath)); // var fileBytes = await File.ReadAllBytesAsync(pdfFilePath); // // 清理临时上传的文件和pdf // if (File.Exists(pdfFilePath)) // { // File.Delete(pdfFilePath); // } // if (File.Exists(tempFilePath)) // { // File.Delete(tempFilePath); // } // new FileExtensionContentTypeProvider().Mappings.TryGetValue(Path.GetExtension(tempPDFName), out var contentType); // return Results.File(fileBytes, contentType); // } // else // { // Console.WriteLine($"下载文件失败: {response.ErrorMessage}"); // return Results.Problem("下载文件失败", statusCode: StatusCodes.Status500InternalServerError); // } // } // } //}