Почему загрузка моего файла из Angular в .NET core web api не работает? - PullRequest
0 голосов
/ 03 мая 2018

В моем приложении Angular я использую элемент управления: https://github.com/valor-software/ng2-file-upload

Этот элемент управления отправляет сообщение с файлом в мой основной веб-API .NET. Вот короткий пример, который не очень важен.

public uploader: FileUploader = new FileUploader({url: `${environment.apiBaseUrl}/file`});

В конце концов элемент управления отправляет сообщение в это действие .NET core web api:

[Route("[controller]")]
public class FileController : Controller
{
    [HttpPost]
    public void Post(IFormFile uploadedFile)
    {
        var file = uploadedFile;
        _fileSystemProvider.SaveToFileSystemAsync(_uploadSettings.GetReplacedDirectoryPath(), file.FileName, file.OpenReadStream());
    }
}

enter image description here Файл загружается в веб-API .NET, подтвержденный с помощью консоли в Chrome, , но uploadedFile : NULL.

Почему это происходит?

1 Ответ

0 голосов
/ 03 мая 2018

Оказывается, что имя параметра в вашем посте действительно важно.

Я понял, что ng2-file-upload использовал file в качестве атрибута имени в fileInput.

Поэтому, когда я изменил свой параметр пост-действия с uploadedFile на file, все работало нормально!

    [HttpPost]
    public void Post(IFormFile file)
    {
        _fileSystemProvider.SaveToFileSystemAsync(_uploadSettings.GetReplacedDirectoryPath(), file.FileName, file.OpenReadStream());
    }

Моя проблема была с ng2-fileupload, но вы также можете иметь это с любым другим плагином в любом другом фреймворке! Убедитесь, что имя атрибута элемента управления вводом или выгрузкой файла равно имени IFormFile parameter действия Post в вашем .NET web api!

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