最全面的.NET【文件上传】总结

最全面的.NET【文件上传】总结

前言

本文包含.NET Core、.NET Framework、及Web前端、三端的文件上传代码,是全网最全面的文件上传知识总结。

指定文件参数名(.Net Core)

代码

[HttpPost("UploaFile")]

public async Task UploadFileAsync(IEnumerable files)

{

//获取上传的文件之一

var file1 = files.FirstOrDefault();

//获取文件名

var file1Name = file1.FileName;

//获取文件流。后续就能进行读取、保存、等文件操作了

var file1Stream = file1.OpenReadStream();

}

调用示例

这里有一个需要注意的地方,就是上传文件的参数名,需要跟接口的入参名一致,也就是 files,我们使用的类型为 IEnumerable< IFormFile>,主要是 IFormFile 这个,因为我们上传的文件可能不止一个,所以这里使用了集合,要是不喜欢 IEnumerable,换成 List 也是可以的;

不指定文件参数名(.Net Core)

而在实际开发中,我们可能会碰到前端不配合,或者参数名改来改去,我们后端又不想频繁更改,那怎么办呢,此时我们可以使用以下的方法。

代码

[HttpPost("UploaFile")]

public async Task UploadFileAsync()

{

//获取上传的文件之一

var file1 = HttpContext.Request.Form.Files.FirstOrDefault();

//获取文件名

var file1Name = file1.FileName;

//获取文件流。后续就能进行读取、保存、等文件操作了

var file1Stream = file1.OpenReadStream();

}

混合(.Net Core)

而同样是一个POST请求,自然是可以通过url,route,from这些传参啦!

代码

[HttpPost("{method}/{value}/UploaFile")]

public async Task> UploadFileAsync(

[FromRoute] Parameter route,

[FromQuery] Parameter query,

[FromForm] Parameter form,

IEnumerable files)

{

}

示例

.Net Framework中的文件上传

与.Net Core所用方法稍有不同

代码

//获取上传的文件之一

var file1 = context.Request.Files[0];

//获取文件名

var file1Name = file1.FileName;

//获取文件流。后续就能进行读取、保存、等文件操作了

var file1Stream = file1.InputStream;

Web前端的处理方式

下面给出Javascript与Vue两种文文件上传方式。

JavaScript 方式

代码

1、ajax上传




2




3、form 表单标签 submit 上传

表单提交上传 通过IFormFile参数获取上传文件信息

AJAX请求上传,通过Request.Form.Files获取上传文件信息

Upload one or more files using this form:

Vue el-upload 方式

代码

相关推荐

小米手机线刷全攻略:时间、步骤与注意事项解析
365速发国际平台登陆

小米手机线刷全攻略:时间、步骤与注意事项解析

【HKC电视专区】报价 评测 导购 图片(HKC)HKC电视大全
365速发国际平台登陆

【HKC电视专区】报价 评测 导购 图片(HKC)HKC电视大全

​游戏内广告与游戏变现:提升收入的策略与实践
365速发国际平台登陆

​游戏内广告与游戏变现:提升收入的策略与实践

7、steam账号怎么改邮箱
365bet体育投注网站

7、steam账号怎么改邮箱

阿衰online
365dni讲解

阿衰online

记录天数的软件app有哪些?记录天数的软件大全-记录天数的软件推荐
365bet体育投注网站

记录天数的软件app有哪些?记录天数的软件大全-记录天数的软件推荐