diff --git a/src/comissions.app.api/Controllers/ArtistRequestsController.cs b/src/comissions.app.api/Controllers/ArtistRequestsController.cs index 87fa342..95b1cc3 100644 --- a/src/comissions.app.api/Controllers/ArtistRequestsController.cs +++ b/src/comissions.app.api/Controllers/ArtistRequestsController.cs @@ -86,7 +86,8 @@ public class ArtistRequestsController: Controller if(reference==null) return NotFound(); var content = await _storageService.DownloadImageAsync(reference.FileReference); - return new FileStreamResult(content, "application/octet-stream"); + var mimeType = _storageService.GetMimeType(reference.FileReference); + return new FileStreamResult(content, mimeType); } [HttpGet] @@ -142,7 +143,8 @@ public class ArtistRequestsController: Controller if(reference==null) return NotFound(); var content = await _storageService.DownloadImageAsync(reference.FileReference); - return new FileStreamResult(content, "application/octet-stream"); + var mimeType = _storageService.GetMimeType(reference.FileReference); + return new FileStreamResult(content, mimeType); } diff --git a/src/comissions.app.api/Controllers/CustomerRequestsController.cs b/src/comissions.app.api/Controllers/CustomerRequestsController.cs index e6ca34b..bc05bfe 100644 --- a/src/comissions.app.api/Controllers/CustomerRequestsController.cs +++ b/src/comissions.app.api/Controllers/CustomerRequestsController.cs @@ -822,7 +822,8 @@ public class CustomerRequestsController : Controller if(reference==null) return NotFound(); var content = await _storageService.DownloadImageAsync(reference.FileReference); - return new FileStreamResult(content, "application/octet-stream"); + var mimeType = _storageService.GetMimeType(reference.FileReference); + return new FileStreamResult(content, mimeType); } [HttpPost] @@ -911,7 +912,8 @@ public class CustomerRequestsController : Controller if(reference==null) return NotFound(); var content = await _storageService.DownloadImageAsync(reference.FileReference); - return new FileStreamResult(content, "application/octet-stream"); + var mimeType = _storageService.GetMimeType(reference.FileReference); + return new FileStreamResult(content, mimeType); } #endregion diff --git a/src/comissions.app.api/Services/Storage/IStorageService.cs b/src/comissions.app.api/Services/Storage/IStorageService.cs index 3fa41db..4b2344c 100644 --- a/src/comissions.app.api/Services/Storage/IStorageService.cs +++ b/src/comissions.app.api/Services/Storage/IStorageService.cs @@ -4,4 +4,6 @@ public interface IStorageService { public Task UploadImageAsync(Stream fileStream, string fileName); public Task DownloadImageAsync(string fileRefrence); + public string GetMimeType(string fileReference); + } \ No newline at end of file diff --git a/src/comissions.app.api/Services/Storage/ImgCdnStorageServiceProvider.cs b/src/comissions.app.api/Services/Storage/ImgCdnStorageServiceProvider.cs index 9d3e4ed..72c9e69 100644 --- a/src/comissions.app.api/Services/Storage/ImgCdnStorageServiceProvider.cs +++ b/src/comissions.app.api/Services/Storage/ImgCdnStorageServiceProvider.cs @@ -51,5 +51,10 @@ namespace comissions.app.api.Services.Storage var stream = await response.Content.ReadAsStreamAsync(); return stream; } + + public string GetMimeType(string fileReference) + { + throw new NotImplementedException(); + } } } \ No newline at end of file diff --git a/src/comissions.app.api/Services/Storage/LocalStorageServiceProvider.cs b/src/comissions.app.api/Services/Storage/LocalStorageServiceProvider.cs index fc6484c..ae0b491 100644 --- a/src/comissions.app.api/Services/Storage/LocalStorageServiceProvider.cs +++ b/src/comissions.app.api/Services/Storage/LocalStorageServiceProvider.cs @@ -34,7 +34,23 @@ namespace comissions.app.api.Services.Storage return fileReference; } + public string GetMimeType(string fileReference) + { + var extension = Path.GetExtension(fileReference).ToLowerInvariant(); + switch (extension) + { + case ".jpg": + case ".jpeg": + return "image/jpeg"; + case ".png": + return "image/png"; + case ".gif": + return "image/gif"; + default: + throw new NotSupportedException($"File extension {extension} is not supported."); + } + } public async Task DownloadImageAsync(string fileReference) { // Get the file path based on the provided file reference