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

为何CKEditor向ASP.NET Core5的UploadFile接口传递空图片文件?

排查CKEditor上传图片时控制器接收文件为null的问题

以下是几个常见的排查方向和解决方法:

1. 修正参数名称匹配问题

CKEditor 默认上传图片时,发送的表单字段名称是 upload,而你的控制器方法参数是 IFormFile File,名称不匹配导致无法绑定。把参数名改成upload即可:

[HttpPost]
[AllowAnonymous]
public IActionResult UploadFile(IFormFile upload)
{
    return Json(_postService.UploadFile(upload));
}

如果想保留参数名File,可以给参数加上[FromForm(Name = "upload")]特性显式指定绑定的字段名:

public IActionResult UploadFile([FromForm(Name = "upload")] IFormFile File)

2. 确认请求路由正确性

检查filebrowserImageUploadUrl: '/Blog/UploadFile'是否和你的控制器路由匹配:

  • 确保你的控制器类上标注了[Route("[controller]")](即BlogController对应/Blog前缀)
  • 如果控制器有自定义路由模板,需要调整filebrowserImageUploadUrl的路径,保证请求能正确路由到UploadFile方法

3. 验证请求内容类型与上传限制

  • CKEditor上传图片时会发送multipart/form-data类型的请求,ASP.NET Core默认支持这种类型的绑定,但如果你的项目中配置了全局的请求过滤,需要确保没有拦截这类请求
  • 检查ASP.NET Core的上传大小限制,默认情况下单个文件最大为30MB,超出的话会返回413错误,而非接收null。如果需要调整,可以在Program.cs(或Startup.cs)中配置:
builder.Services.Configure<FormOptions>(options =>
{
    options.MultipartBodyLengthLimit = 104857600; // 设置为100MB
});

4. 检查CKEditor配置完整性

确保你的CKEditor配置没有语法错误,比如你提供的代码中CKEDITOR.replace的配置对象末尾缺少闭合的)和;,修正后的配置应该是:

<script>
    CKEDITOR.replace('Description', {
        filebrowserImageBrowseUrl: 'Uploads',
        filebrowserImageUploadUrl: '/Blog/UploadFile'
    });
</script>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 15:27:17