using Microsoft.AspNetCore.Mvc; using NPOI.HPSF; using WCS.BLL.Services.IService; using WCS.Model; using WCS.Model.ApiModel; using WCS.Model.ApiModel.User; using WCS.Model.WebSocketModel; namespace WCS.WebApi.Controllers { /// /// 文件下载 /// [ApiController] [Route("[controller]")] public class FileDownLoadController : ControllerBase { public FileDownLoadController() { } [HttpGet("downloadApp")] public IActionResult downloadApp(string fileName) { // 这里是文件的物理路径,你需要根据实际情况提供 var filePath = Path.Combine(Directory.GetCurrentDirectory(), $"Files/{fileName}"); // 检查文件是否存在 if (!System.IO.File.Exists(filePath)) { return NotFound(); } // 获取文件流 var stream = System.IO.File.OpenRead(filePath); // 设置HTTP响应头,使浏览器知道这是一个附件,应该下载而不是打开 Response.Headers.Add("Content-Disposition", "attachment; filename=\"" + fileName + "\""); // 返回文件流作为FileResult return File(stream, "application/octet-stream", fileName); } [HttpGet("getLatestAppName")] public ResponseCommon getLatestAppName() { string directoryPath = Path.Combine(Directory.GetCurrentDirectory(), $"Files"); // 获取目录下的所有文件信息 FileInfo[] files = Directory.GetFiles(directoryPath, "*.APK") .Select(file => new FileInfo(file)) .ToArray(); if (files == null || files.Length == 0) { return new ResponseCommon() { Code = 201, Message = "服务器不存在App安装包" }; } //获取最后修改的一个 FileInfo lastModifiedFile = files.OrderByDescending(f => f.LastWriteTime).First(); if (lastModifiedFile != null) { return new ResponseCommon() { Code = 200, Data = lastModifiedFile.Name }; } else { return new ResponseCommon() { Code = 201, Message = "服务器不存在App安装包" }; } } } }