.net core 2.0 Не могу скачать файл, сохраненный в папке. - PullRequest
0 голосов
/ 07 декабря 2018

Я сохраняю информацию из datagrid в файл xslx, расположенный в папке, после того, как я хочу загрузить этот файл.У меня есть код, который работает правильно, но в моем проекте, когда я пытаюсь загрузить файл, он ничего не возвращает.Может быть, это из-за защиты или роли пользователя является администратором.Я пробовал с разными папками, и я уверен, что папка не проблема.Что еще это может быть?

 public FileResult downloadFile(string filePath)
            {
                IFileProvider provider = new PhysicalFileProvider(filePath);
                IFileInfo fileInfo = provider.GetFileInfo(fileName);
                var readStream = fileInfo.CreateReadStream();
                var mimeType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
                return File(readStream, mimeType, fileName);
            }

1 Ответ

0 голосов
/ 10 декабря 2018

Я попробовал ваш код, и все, кажется, в порядке

public IActionResult Index()
{
    var fileName = "SN-export.xlsx";
    string filePath = _hostingEnvironment.WebRootPath;
    string fileName2 = Path.Combine(filePath, fileName);
    FileInfo excelFile = new FileInfo(fileName2);
    if (excelFile.Exists) {
        excelFile.Delete();
        excelFile =  new FileInfo(fileName2);
    }
    // excel.SaveAs(excelFile); Have to comment this because i don't know what excel nuget you are using
    // For testing purpose i have used the following two lines
    var file = System.IO.File.Create(excelFile.ToString());
    file.Close();
    return DownloadFile(filePath, fileName);
}

public FileResult DownloadFile(string filePath,string fileName)
{ 
    IFileProvider provider = new PhysicalFileProvider(filePath);
    IFileInfo fileInfo = provider.GetFileInfo(fileName);
    var readStream = fileInfo.CreateReadStream();
    var mimeType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
    return File(readStream, mimeType, fileName);
}
...