diff --git a/LiMan.Api/Controllers/FilesaveController.cs b/LiMan.Api/Controllers/FilesaveController.cs
index bcc0a32..a086c96 100644
--- a/LiMan.Api/Controllers/FilesaveController.cs
+++ b/LiMan.Api/Controllers/FilesaveController.cs
@@ -4,8 +4,8 @@ using LiMan.DB.DBModels;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
+using Microsoft.AspNetCore.StaticFiles;
using Microsoft.Extensions.Configuration;
-using Microsoft.Extensions.Logging;
using NLog;
using System;
using System.Collections.Generic;
@@ -43,7 +43,6 @@ namespace LiMan.APi.Controllers
///
///
///
- ///
public FilesaveController(IConfiguration configuration, ApiDataService DataService, IWebHostEnvironment env)
{
dataService = DataService;
@@ -63,15 +62,61 @@ namespace LiMan.APi.Controllers
#endregion Protected Properties
- #region Public Methods
+ #region Protected Methods
///
- /// Richiesta di registrazione ticket supporto
+ /// Calcolo correetto mimetype da nome file
+ ///
+ ///
+ ///
+ protected string GetMimeType(string fileName)
+ {
+ var provider = new FileExtensionContentTypeProvider();
+ string contentType;
+ if (!provider.TryGetContentType(fileName, out contentType))
+ {
+ contentType = "application/octet-stream";
+ }
+ return contentType;
+ }
+
+ #endregion Protected Methods
+
+ #region Public Methods
+
+ /// GET api/filesave/id/filename
+ ///
+ /// Recupera un singolo file dato ticket code + nome file (safe)
+ ///
+ /// Ticket code formato T00000000
+ /// Nome file (safe)
+ /// Nome file da scaricare
+ ///
+ [HttpGet("{id}/{secureName}/{fileName}")]
+ public async Task DownloadFile(string id, string secureName, string fileName)
+ {
+ string relDir = _configuration["FileShare"];
+ string ticketDir = Path.Combine(relDir, id);
+ var filePath = Path.Combine(ticketDir, secureName);
+ // verifico esistenza..
+ if (System.IO.File.Exists(filePath))
+ {
+ var bytes = await System.IO.File.ReadAllBytesAsync(filePath);
+ return File(bytes, GetMimeType(fileName), fileName);
+ }
+ else
+ {
+ return File(new byte[0], "text/plain", "Empty.txt");
+ }
+ }
+
+ ///
+ /// Elenco files assaociati a ticket supporto
///
///
///
///
- // POST api/files/list/1
+ // POST api/filesave/list/1
[HttpPost("list/{id}")]
public async Task> list(int id, [FromBody] SupportRequest CurrRequest)
{