c#mvc上传文件保存到后台_ASP.NET Core MVC上传、导入、导出详解

前言本君已成夜猫子,本节我们来讲讲ASP.NET Core MVC中的上传,这两天在研究批量导入功能,本节顺便简单搞搞导入、导出,等博主弄妥当了再来和大家一并分享。.NET Core MVC上传首先我们来看看官网的上传的例子,再然后进行拓展训练,官网的表单是这样的。Upload one or more files using this form:在ASP.NET Core MVC中接收上传的文件需...
摘要由CSDN通过智能技术生成

前言

本君已成夜猫子,本节我们来讲讲ASP.NET Core MVC中的上传,这两天在研究批量导入功能,本节顺便简单搞搞导入、导出,等博主弄妥当了再来和大家一并分享。

.NET Core MVC上传

首先我们来看看官网的上传的例子,再然后进行拓展训练,官网的表单是这样的。

Upload one or more files using this form:

在ASP.NET Core MVC中接收上传的文件需要用 IFormFile 来接收,该接口定义如下:public interface IFormFile

{

string ContentType { get; }

string ContentDisposition { get; }

IHeaderDictionary Headers { get; }

long Length { get; }

string Name { get; }

string FileName { get; }

Stream OpenReadStream();

void CopyTo(Stream target);

Task CopyToAsync(Stream target, CancellationToken cancellationToken = null);

}

后台控制器关于上传的Action方法进行如下定义:[HttpPost("UploadFiles")]

public async Task Post(List files)

{

long size = files.Sum(f => f.Length);

// full path to file in temp location

var filePath = Path.GetTempFileName();

foreach (var formFile in files)

{

if (formFile.Length > 0)

{

using (var stream = new FileStream(filePath, FileMode.Create))

{

await formFile.CopyToAsync(stream);

}

}

}

return Ok(new { count = files.Count, size, filePath });

}

为了很清楚地上传文件所在目录,我们将官网例子进行一下改造。public IActionResult UploadFiles(List files)

{

long size = 0;

foreach (var file in files)

{

//var fileName = file.FileName;

var fileName = ContentDispositionHeaderValue

.Parse(file.ContentDisposition)

.FileName

.Trim('"');

fileName = hostingEnv.WebRootPath + $@"\{fileName}";

size += file.Length;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值