问题描述: 在ASP.NET Core中,使用文件上传功能时,无论如何都无法获取到上传的文件,即文件对象始终为null。
解决方法:
[HttpPost]
public async Task Upload(IFormFile file)
{
if (file != null)
{
// 处理上传的文件
// ...
}
else
{
// 文件为空,处理错误
// ...
}
}
public void ConfigureServices(IServiceCollection services)
{
// ...
services.AddControllersWithViews();
services.Configure(options =>
{
options.AllowSynchronousIO = true; // 允许同步IO
});
}
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
// ...
app.UseStaticFiles();
// ...
}
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
// ...
app.UseRouting();
app.UseEndpoints(endpoints =>
{
endpoints.MapControllerRoute(
name: "default",
pattern: "{controller=Home}/{action=Index}/{id?}");
});
// ...
}
通过以上步骤,您应该能够正确地接收和处理上传的文件。如果仍然无法解决问题,请检查其他可能导致文件对象为null的原因,例如文件大小限制、请求超时等。