Загрузка изображения Umbraco в папку Media в веб-API ASP.NET CoreC#

Место общения программистов C#
Ответить
Anonymous
 Загрузка изображения Umbraco в папку Media в веб-API ASP.NET Core

Сообщение Anonymous »

Я пытаюсь загрузить изображение в папку мультимедиа в папке, из которой мы получаем файл из внешнего интерфейса в веб-API ASP.NET Core. Я использую версию Umbraco 3.2.2.
Когда я пытаюсь, как показано ниже, этот файловый контейнер не существует:

Код: Выделить всё

[HttpPost("/agents/logo-upload")]
public async Task UploadImage([FromForm]IFormFile file)
{
if (file == null || file.Length == 0)
{
return BadRequest("No file uploaded.");
}

try
{
// 1. Generate a unique file name and save it to the media folder
var folderName = _authenticationService.GetAgent().Agency.Name;
folderName = folderName.Trim().Replace(" ","").ToLower();

var fileName = Path.GetFileName(file.FileName);
var filePath = Path.Combine("media", folderName, fileName);  // Replace with your media folder path

var existingFolder = _mediaService.GetRootMedia().FirstOrDefault(m => m.Name.InvariantEquals(folderName));

if (existingFolder == null)
{
var newFolder = _mediaService.CreateMedia(folderName, Constants.System.Root, "Folder");
_mediaService.Save(newFolder);
existingFolder = newFolder;
}

var directoryPath = Path.GetDirectoryName(filePath);

if (!Directory.Exists(directoryPath))
{
Directory.CreateDirectory(directoryPath);
}

using (var fileStream = new FileStream(filePath, FileMode.Create))
{
await file.CopyToAsync(fileStream);
}

IMedia media = null;

using (var stream = System.IO.File.OpenRead(filePath))
{
media = _mediaService.CreateMedia(fileName, existingFolder.Id, Constants.Conventions.MediaTypes.Image);

media.SetValue(_mediaFileManager, _mediaUrlGeneratorCollection, _shortStringHelper, _contentTypeBaseServiceProvider, Constants.Conventions.Media.File, fileName, stream);
_mediaService.Save(media); // throwing the error here
}

return Ok(new { MediaId = media.Id, FilePath = filePath });
}
catch (Exception ex)
{
_logger.LogError(ex, "Error while uploading image.");
return StatusCode(500, "Internal server error");
}
}
Невозможно ли загрузить изображение в медиа-папку бэк-офиса Umbraco?
Изображение


Подробнее здесь: https://stackoverflow.com/questions/792 ... re-web-api
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»