AspnetCore.Mvc上传文件错误,即使IFormfile有效,var caminho也始终为null

时间:2019-07-24 22:44:05

标签: c# asp.net-core-mvc

我尝试上传图片,但是var root始终为空...

NullReferenceException:对象引用未设置为对象的实例。

[HttpPost]
[ValidateAntiForgeryToken]
public async Task<IActionResult> Create([Bind("Vinhoid,Nome,Ano,Teoralcool,Produtorid,Tipoid,Regiaoid,Datacriacao,Localimagem,Garrafid,Descricao,Preco,Stock")] VinhoDistribuicao vinhoDistribuicao, IFormFile Localimagem)
{
    if (HttpContext.Session.GetString("TipoUtilizador") == "Garrafeira")




    {
        if (ModelState.IsValid)
        {
           if (_context.Vinho.Any(x => x.Ano == vinhoDistribuicao.Ano && x.Nome == vinhoDistribuicao.Nome && x.Tipoid == vinhoDistribuicao.Tipoid) == false)

           {

                var caminho = Path.Combine(he.WebRootPath + "/ImageFiles",
                    Path.GetFileName(Localimagem.FileName));

                FileStream fileStream = new FileStream(caminho, FileMode.Create);
                Localimagem.CopyTo(fileStream);
                fileStream.Close();

HTML

@model Lab4_Vinhos6.Models.VinhoDistribuicao

<div class="form-group">
    <label asp-for="Localimagem" class="control-label"></label>
    <input asp-for="Localimagem" type="file" accept=".png, .jpg" class="form-control" value="" />

    <span asp-validation-for="Localimagem" class="text-danger"></span>
</div>

NullReferenceException:对象引用未设置为对象的实例。

var caminho = Path.Combine(he.WebRootPath + "/ImageFiles",

1 个答案:

答案 0 :(得分:0)

确保wwwroot中有ImageFiles文件夹。然后尝试使用以下代码

var caminho = Path.Combine(he.WebRootPath, "ImageFiles",Path.GetFileName(Localimagem.FileName));