12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 |
- using Microsoft.AspNetCore.Http;
- using Microsoft.AspNetCore.Mvc;
- using Microsoft.AspNetCore.StaticFiles;
- using System;
- using System.Collections.Generic;
- using System.IO;
- using System.Linq;
- using System.Threading.Tasks;
- namespace wispro.sp.api.Controllers
- {
- [Route("api/[controller]/[action]")]
- [ApiController]
- public class FileProcesTaskController : ControllerBase
- {
- Services.IFileTaskService fileTaskService;
- public FileProcesTaskController(Services.IFileTaskService _fileTaskService)
- {
- fileTaskService = _fileTaskService;
- }
- public share.FileProcessTask Get(string Id)
- {
- return fileTaskService.Get(Id);
- }
- [HttpGet, DisableRequestSizeLimit]
- public async Task<IActionResult> Download(string Id)
- {
-
- var filename = fileTaskService.Get(Id);
- if (filename != null)
- {
- var attachfileSavePath = utility.ConfigHelper.GetSectionValue("AttachFileSavePath");
- var filePath = filename.FilePath;
- var context = HttpContext;
- if (System.IO.File.Exists(filePath))
- {
- var memory = new MemoryStream();
- await using (var stream = new FileStream(filePath, FileMode.Open))
- {
- await stream.CopyToAsync(memory);
- }
- memory.Position = 0;
- return File(memory, GetContentType(filename.FilePath), filename.FileName);
- }
- else
- return NotFound();
- }
- else
- {
- return NotFound();
- }
- }
- private string GetContentType(string path)
- {
- var provider = new FileExtensionContentTypeProvider();
- string contentType;
- if (!provider.TryGetContentType(path, out contentType))
- {
- contentType = "application/octet-stream";
- }
- return contentType;
- }
- }
- }
|