ASP.NET Core загружает файлы, используя IFormFile с путем в имени файла - PullRequest
0 голосов
/ 12 апреля 2019
 [HttpPost("FilePost")]
    public async Task<IActionResult> FilePost(List<IFormFile> files)
    {
        long size  = files.Sum(f => f.Length);
        var filePath = Directory.GetCurrentDirectory() + "/files";
        if (!System.IO.Directory.Exists(filePath))
        {
            Directory.CreateDirectory(filePath);
        }

        foreach (var item in files)
        {
            if (item.Length > 0)
            {
                using (var stream = new FileStream(filePath,FileMode.CreateNew))
                {
                    await item.CopyToAsync(stream);
                }
            }
        }
        return Ok(new { count = files.Count, size, filePath });

    }

FormFile. FileName = каталог + имя файла,

Загруженный файл, имя файла с информацией о пути, как это сделать?

Мне просто нужно получить имя файла.

Ответы [ 2 ]

0 голосов
/ 12 апреля 2019

Мне просто нужно получить имя файла.

Используйте Path.GetFileName(), чтобы получить имя файла, и используйте Path.Combine(), чтобы объединить путь сохранения, который выхотите с именем файла, попробуйте код как показано ниже

 var filesPath = Directory.GetCurrentDirectory() + "/files";
        if (!System.IO.Directory.Exists(filesPath))
        {
            Directory.CreateDirectory(filesPath);
        }

        foreach (var item in files)
        {
            if (item.Length > 0)
            {
                var fileName = Path.GetFileName(item.FileName);
                var filePath = Path.Combine(filesPath, fileName);
                using (var stream = new FileStream(filesPath, FileMode.CreateNew))
                {
                    await item.CopyToAsync(stream);
                }
            }
        }
0 голосов
/ 12 апреля 2019

Похоже, вы хотите получить базу имен файлов на вашем пути к файлу.Вы можете получить его в путь

using System.IO;

Path.GetFileName(filePath);

или метод расширения

public static string GetFilename(this IFormFile file)
{
    return ContentDispositionHeaderValue.Parse(
                    file.ContentDisposition).FileName.ToString().Trim('"');
}

Пожалуйста, дайте мне знать, если вам нужна помощь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...