C# HTML 表单文件上传处理
一、HTML Form表单上传
重点:
1.form 表单 需要Post方式请求
2.form 表单的加密方式 enctype="multipart/form-data"
<form action="/upload/uploadone" enctype="multipart/form-data" method="post">
<input type="file" name="filename" value="选择文件"/>
<button type="submit">
点击上传
</button>
</form>
二、Asp.Net Core C#文件接收
请求上下文中 Form参数的IFormFileCollection,可以获取上传的文件列表。
public class UploadController : Controller
{
public IActionResult Index()
{
return View();
}
private readonly IWebHostEnvironment _env;
public UploadController(IWebHostEnvironment env)
{
_env = env;
}
/// <summary>
/// Asp.Net Core 5.0版本
/// 接受上传文件---单个文件上传处理
/// </summary>
/// <returns></returns>
public IActionResult UploadOne()
{
//1.获取上传文件
IFormFileCollection fileList = this.HttpContext.Request.Form.Files;
if (fileList.Count > 0)
{
//2.保存到服务器
IFormFile file = fileList[0];
//file.FileName //文件名称
//file.Length // 文件大小
string filename = _env.WebRootPath + "/upload/" + file.FileName;
//假设文件不是很大的情况,一次性读取保存
Stream stream = file.OpenReadStream();
byte[] dataSource = new byte[stream.Length];
stream.Read(dataSource, 0, dataSource.Length);
FileStream fs = new FileStream(filename, FileMode.Create, FileAccess.ReadWrite);
fs.Write(dataSource, 0, dataSource.Length);
fs.Close();
return Content("文件上传成功:" + filename);
}
return Content("没有获取到上传文件");
}
}
更多: