You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何避免未选图片时出现对象引用未设置的错误?

解决未选择图片时提交表单的FileName获取错误问题

你遇到的问题本质是formFile对象存在,但FileName属性为空字符串,导致Path.Combine无法生成有效路径报错。之前的判断只检查了formFile是否为null,没覆盖FileName为空的场景;Try/Catch没生效大概率是没把报错的代码块完整包裹进去。

直接给你修正后的代码逻辑,核心是在执行文件操作前做完整校验:

var formFile = fileUpload.FormFile;

// 多重校验:确保文件对象存在、文件名非空、文件有实际内容
if (formFile == null || string.IsNullOrWhiteSpace(formFile.FileName) || formFile.Length == 0)
{
    // 这里返回错误提示,比如给前端返回"请选择有效的图片文件"
    return;
}

// 校验通过后再执行文件写入和数据库操作
var filePath = Path.Combine(fullPath, formFile.FileName);
using (var stream = System.IO.File.Create(filePath))
{
    formFile.CopyTo(stream);
}

db.VytvoritPrispevekOnas(nazevPrispevku, textPrispevku,"/OnasImages/",formFile.FileName.ToString());

几点关键补充:

  • 用string.IsNullOrWhiteSpace判断文件名,能覆盖空字符串、全空格等无效场景
  • 加上formFile.Length == 0的判断,避免用户选择了空文件的情况
  • 把文件流用using包裹,无需手动调用stream.Close(),会自动释放资源,更安全
  • 数据库操作放在文件写入之后,避免文件未成功写入但数据库已存记录的不一致问题

内容的提问来源于stack exchange,提问作者Drapys

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 04:33:14