Загрузка файла ядра asp.net всегда пуста - PullRequest
1 голос
/ 15 мая 2019

Я пытался следовать этому примеру в документации, чтобы разрешить загрузку файла на мой контроллер, он действительно ударил по моему действию, но всегда имеет значение null.

Моя модель просмотра

<form method="post" enctype="multipart/form-data" asp-controller="Data" asp-action="ImportAdditionalCodes">
    <div class="form-group">
        <div class="col-md-10">
            <p>Upload import data:</p>
            <input type="file" name="files" >
        </div>
    </div>
    <div class="form-group">
        <div class="col-md-10">
            <input type="submit" value="Upload">
            <button type="button" id="btnCancelUploadData">Cancel</button>
        </div>
    </div>
</form>

Действие My Controller

[HttpPost]
public async Task<IActionResult> ImportAdditionalCodes(IFormFile file)
{
    //file is always null here!!!
    if (file?.Length > 0)
    {
        JsonSerializer js = new JsonSerializer();
        using (MemoryStream ms = new MemoryStream())
        {
            await file.CopyToAsync(ms);

            using (StreamReader streamReader = new StreamReader(ms))
            {
                CommodityAdditionalCodeTypeDto[] codes= (CommodityAdditionalCodeTypeDto[]) js.Deserialize(streamReader, typeof(CommodityAdditionalCodeTypeDto[]));
            }
        }
   }
   return null;
}

1 Ответ

4 голосов
/ 15 мая 2019

Маленькая опечатка. Вместо

<input type="file" name="files" >

Запись:

<input type="file" name="file" >

Вы также можете получить доступ к отправленным файлам, используя HttpContext.Request.Form.Files;

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