using System.IO; using System.Threading.Tasks; using Aliyun.Acs.Core.Http; using Aliyun.Acs.Core.Utils; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.StaticFiles; namespace GxPress.Api.AppControllers { /// /// 访问 /// [Route("/api/app/video")] [ApiController] [Authorize] public class VideoController : ControllerBase { private readonly IWebHostEnvironment _environment; public VideoController(IWebHostEnvironment environment) { _environment = environment; } /// /// /// /// [HttpGet] [AllowAnonymous] public IActionResult GetVideo() { try { // HttpResponse response = new HttpResponse(); var dd = Common.Tools.StringUtils.GetWebRootPath(_environment.WebRootPath); var fis = new FileStream(dd + "/cache/20200428/music.mp4", FileMode.Open); var size = fis.Length; // 得到文件大小 var data = new byte[size]; fis.Write(data, 0, data.Length); var filepath = dd + "/cache/20200428/music.mp4"; var provider = new FileExtensionContentTypeProvider(); FileInfo fileInfo = new FileInfo(filepath); var ext = fileInfo.Extension; new FileExtensionContentTypeProvider().Mappings.TryGetValue(ext, out var contenttype); var result = File(data, contenttype ?? "application/octet-stream", fileInfo.Name); fis.Close(); return result; } catch (FileNotFoundException e) { throw new Common.Exceptions.BusinessException(e.Message); } catch (IOException e) { throw new Common.Exceptions.BusinessException(e.Message); } } } }