c# - AspnetCore.Mvc 上传文件错误,即使 IFormfile 有效,var caminho 始终为空
问题描述
我尝试上传图片,但 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",
解决方案
确保您ImageFiles
在 wwwroot 中有该文件夹。然后尝试使用下面的代码
var caminho = Path.Combine(he.WebRootPath, "ImageFiles",Path.GetFileName(Localimagem.FileName));
推荐阅读
- azure - Azure CLI - 删除资源而不删除资源组
- python - 如何将 Django 视图响应发送到模态?
- android - AltBeacon 看不到 eddystone 设备
- regex - 如何在记事本++中找到最后一个字符“A”的记录
- pandas - groupby 显示非分类列的未观察值
- rust - 如何从 Rust 链接 gtk?
- shell - 在 sed 中,我可以防止 \S 匹配括号吗?
- flutter - 如何在颤动中左右滑动时停止PageView重建
- ansible - Exclude the three first items of a sorted list
- vba - 在 MS Word 中评估包含 VBA 代码的字符串并让 ScriptControl 工作