Как получить путь к файловой системе для сохранения файла в AS PNET MVC - PullRequest
0 голосов
/ 07 мая 2020

У меня есть контроллер, куда я загружаю файл

Вот контроллер

using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Configuration;
using Microsoft.AspNetCore.Http;
using Microsoft.Extensions.Logging;
using System.IO;
using System.Linq;
using System.Collections.Generic;
using System.Threading.Tasks;
using System;
using System.Web;

namespace TodoApi.Controllers {
    [Route("[controller]")]
    public class FileUploadController : Controller
    {

        public FileUploadController()
        {
        }

        [HttpPost]
        public IActionResult Index(List<IFormFile> files)
        {
            var filePath = Server.MapPath("/UploadedFiles/Foo");
            return Ok();
        }
    }
}

Когда я пытаюсь построить, он утверждает, что в контексте нет Сервера. Я пробовал HttpContext.Current.Server System.Web.HttpContext.Current.Server, но всегда не получаю X в контексте. Что мне не хватает?

Вот csproj

<Project Sdk="Microsoft.NET.Sdk.Web">

  <PropertyGroup>
    <TargetFramework>netcoreapp3.1</TargetFramework>
  </PropertyGroup>


</Project>

Вот текущая ошибка

Microsoft (R) Build Engine version 16.5.0+d4cbfca49 for .NET Core
Copyright (C) Microsoft Corporation. All rights reserved.

  Restore completed in 61.19 ms for /Users/gecko/code/TodoApi2/TodoApi2.csproj.
Controllers/FileUploadController.cs(24,28): error CS0103: The name 'Server' does not exist in the current context [/Users/gecko/code/TodoApi2/TodoApi2.csproj]

Build FAILED.

Controllers/FileUploadController.cs(24,28): error CS0103: The name 'Server' does not exist in the current context [/Users/gecko/code/TodoApi2/TodoApi2.csproj]
    0 Warning(s)
    1 Error(s)

Time Elapsed 00:00:02.50

Я загрузил код в это репо https://github.com/dhilst/TodoApi2

1 Ответ

0 голосов
/ 08 мая 2020

Избегайте Server.MapPath в вашем API, используйте вместо него HostingEnvironment:

System.Web.Hosting.HostingEnvironment.MapPath("~/UploadedFiles/Foo");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...