隐藏

.net core 文件上传总结汇总

发布:2023/12/7 15:38:33作者:大数据 来源:大数据 浏览次数:158

官方文档:https://docs.microsoft.com/zh-cn/aspnet/core/mvc/models/file-uploads?view=aspnetcore-2.2

重要提示:

绑定根据名称匹配窗体文件。 例如,<input type="file" name="formFile"> 中的 HTML name 值必须与 C# 参数/属性绑定 (FormFile) 匹配。 有关详细信息,请参阅使名称属性值与 POST 方法的参数名匹配部分。

 

使用IFormFile注意:前端或js里的name必须和controller中的形式参数保持一致,否则为null

前端:name="formFile"

controller里 IFormFile formFile

 

使名称属性值与 POST 方法的参数名称匹配

在 Razor 发布窗体数据或直接使用 JavaScript 的非窗体中 FormData ,在窗体的元素中指定的名称或 FormData 必须与控制器的操作中参数的名称匹配。

如下示例中:

  • 使用 <input> 元素时,将 name 属性设置为值 battlePlans

    <input type="file" name="battlePlans" multiple>

    使用 JavaScript FormData 时,将名称设置为值 battlePlans

  • Javascript

    var formData = new FormData();

    for (var file in files) {

    formData.append("battlePlans", file, file.name);

    }

    将匹配的名称用于 C# 方法的参数 (battlePlans):

  • 对于名为的页 Razor 页面处理程序方法 Upload :

    public async Task<IActionResult> OnPostUploadAsync(List<IFormFile> battlePlans)

    对于 MVC POST 控制器操作方法:

  • C#

    public async Task<IActionResult> Post(List<IFormFile> battlePlans)

    IFormFile常用来上传小文件,另外还有上传多个文件IFormCollection formcollection

最全的还是formcollection里面可以包含上传文件外的其它form-data,如其它键值

formcollection.Files==Request.Form.Files
true
formcollection==Request.Form
true

IFormFileCollection 是IFormFile的集合

 

声明:本站内容来源于原创和互联网,尊重作者版权,转载请注明来源网址,欢迎收藏,谢谢!