System.UnauthorizedAccessException: доступ к пути '...' запрещен - PullRequest
0 голосов
/ 12 февраля 2020

Итак, я немного новичок в. NET ядре, и у меня возникла проблема с копированием IFormFile в папку в моем проекте. Я пытался увидеть другие вопросы об этом, но ни один из ответов не помог мне. Это мой код:

public async Task<string> AddImage(IFormFile image, int id)
{
    if (image.Length > 0)
    {
        var filePath = Path.Combine("images", ("apartamento" + id.ToString()), image.FileName);

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

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

        return filePath;
    }
} 

Проблема в том, что мне кажется, что у меня нет разрешения (изо всех сил пытался увидеть, все ли разрешено) или что-то в моем коде не так.

Я просто хочу сделать простую вещь: получить изображение в моем API и сохранить его, чтобы позже я смог использовать его в своем проекте. Я делал это раньше, но у меня возникают некоторые проблемы с. NET core.

Если у кого-то есть другая идея сделать это, я буду благодарен. Я думаю о сохранении изображения как Base64 в моей базе данных, но я не уверен, какой вариант является лучшим. Или самый простой.

1 Ответ

0 голосов
/ 12 февраля 2020

Попробуйте это

public async Task<string> AddImage(IFormFile image, int id)
{
    if (image.Length > 0)
    {
        var dir = Path.Combine("images", ("apartamento" + id.ToString()));
        var filePath = Path.Combine(dir, image.FileName);

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

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

        return filePath;
    }
} 
...