using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Threading.Tasks; using Txgy.EWS.Server.ICommon; namespace Txgy.EWS.Server.Start.Controllers { [ApiController] public class ImageController : ControllerBase { IConfiguration _configuration; public ImageController(IConfiguration configuration) { _configuration = configuration; } [HttpGet("show/{img}")] public IActionResult GetImage([FromRoute(Name = "img")] string imgPath) { string rootPath = _configuration.Read("FileFolder"); //获取图片的返回类型 var contentTypDict = new Dictionary { {"jpg","image/jpeg"}, {"jpeg","image/jpeg"}, {"jpe","image/jpeg"}, {"png","image/png"}, {"gif","image/gif"}, {"ico","image/x-ico"}, {"tif","image/tiff"}, {"tiff","image/tiff"}, {"fax","image/fax"}, {"wbmp","image/nd.wap.wbmp"}, {"rp","imagend.rn-realpix"} }; var contentTypeStr = "image/jpeg"; var imgTypeSplit = imgPath.Split('.'); var imgType = imgTypeSplit[imgTypeSplit.Length - 1].ToLower(); //未知的图片类型 if (contentTypDict.ContainsKey(imgType)) { contentTypeStr = contentTypDict[imgType]; } string filePath = Path.Combine(rootPath, imgPath); //图片不存在 if (!new FileInfo(filePath).Exists) { return NoContent(); } //返回原图 using (var sw = new FileStream(filePath, FileMode.Open, FileAccess.Read, FileShare.ReadWrite)) { var bytes = new byte[sw.Length]; sw.Read(bytes, 0, bytes.Length); sw.Close(); return new FileContentResult(bytes, contentTypeStr); } } } }