Firefox удаляет несколько пробелов из имени файла - PullRequest
1 голос
/ 04 августа 2020

Я использую . NET Core 3.1 , чтобы предоставить файл пользователю. У меня есть следующий код контроллера для загрузки файла, имя которого содержит несколько пробелов:

public async Task<IActionResult> DownloadFileWithMultipleSpaces()
{
    string fileName = "file     with multiple     spaces.txt";
    string filePath = Path.Combine(Directory.GetCurrentDirectory(), "AppData", fileName);
    using (FileStream stream = System.IO.File.OpenRead(filePath))
    {
        Response.StatusCode = StatusCodes.Status200OK;
        Response.ContentType = "application/octet-stream";
        Response.Headers.Add("Content-Disposition", $"attachment; filename = \"{fileName}\"");
        await stream.CopyToAsync(Response.Body);
        await Response.CompleteAsync();
        return new EmptyResult();
    }
}

Когда я обращаюсь к этому методу контроллера из Chrome (84.0.4147.89), имя загруженного файла содержит несколько пробелов (file with multiple spaces.txt). Однако, если я попытаюсь загрузить файл с Firefox (79.0), имя загруженного файла будет file with multiple spaces.txt.

Я обнаружил похожую проблему здесь . Они предложили заключить имя файла в двойные кавычки. В моем случае имя файла заключено в двойные кавычки, но оно все равно не работает.

...