/
renix
/
TravelGuide
Обзор
Документация
Войти
/
renix
/
TravelGuide
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
back/Controllers/TestController.cs
65 строк
2 KB
artem777764
Отправка сообщений на почту (В контролере Email)
08 апр 2025, 21:56
08 апр 2025, 21:56
0fed03f
Код
Авторство
О чём код?
using System.Security.Claims; using System.Threading.Tasks; using back.DTOs.FilesDTOs; using back.DTOs.TagDTO; using back.Extensions; using back.Models; using back.Models.Entities; using back.Services; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; using MongoDB.Bson; using MongoDB.Driver; using MongoDB.Driver.GridFS; namespace back.Controllers; [ApiController] [Route("test")] public class TestController : ControllerBase { private readonly ImageService _imageService; private readonly MongoDbContext mongoContext; public TestController(ImageService imageService, MongoDbContext mongoContext) { _imageService = imageService; this.mongoContext = mongoContext; } [HttpGet("")] public IActionResult Get() { //return Ok(int.Parse( User.FindFirstValue("userId")!)); return Ok(_imageService.GetImage("67d3156b1c70fc17871a61d3")); } [HttpPost("upload")] public IActionResult Post([FromBody] FileUploadDto file) { return Ok(_imageService.UploadFile(file)); } [HttpGet("images/{id}")] public IActionResult GetImage([FromRoute]string id) { ObjectId objectId = ObjectId.Parse(id); var gridFs = mongoContext.GridFsBucket; var filter = Builders<GridFSFileInfo>.Filter.Eq(info => info.Id, objectId); var fileInfo = gridFs.Find(filter).FirstOrDefault(); if (fileInfo == null) { return NotFound("Файл не найден"); } var memoryStream = new MemoryStream(); gridFs.DownloadToStream(objectId, memoryStream); memoryStream.Seek(0, SeekOrigin.Begin); string contentType = _imageService.GetContentType(fileInfo.Filename); return File(memoryStream, contentType, fileInfo.Filename); } }