asp.net core像springboot非常相似,我们从一个springboot文件上传与下载的例子来引到asp.net core的文件上传与下载:

本文asp.net core版本为:6.0

1 springboot中文件上传与下载的方式

1.1 上传

在controller中接收MultipartFile即可。
前端需要使用form-data传参,方式如下:

2.2 下载

参考这篇文章:
spring controller实现下载文件的两种方式

2 使用asp.net core进行文件上传与下载

还是那句话,官网虽然已经很详细了,但是看起来还是很抽象、晦涩。

下面通过几个例子来完成文件的上传与下载。

2.1 文件的上传

1、首先创建一个controller
在asp.net core的api服务中,我们需要继承自ControllerBase类。

[Route("[controller]/[action]")]的意思是,比如我们有一个方法uploadFile(),那么当前接参的url就是:ip:port/File/uploadFile

[Route("[controller]/[action]")]
[ApiController]
public class FileController : ControllerBase{}

2、然后我们创建一个接参的类
注意:这里的IFormFile对标springboot中的MultipartFile,都可以直接接收文件。
具体的属性与方法可以参考微软官网。

public class FileParam
{//文件idpublic long? fileId { get; set; }// 文件public IFormFile? file{ get; set;}
}

3、开始编写具体的前端控制器
注意,我们需要在入参上添加[FromForm],否则我们接收不到前端传过来的数据。

当我们加了[FromForm]后,asp.net core会将接收过来的参数自动封装为FileParam

[Route("[controller]/[action]")]
[ApiController]
public class FileController : ControllerBase{[HttpPost]public ResultVo<bool> uploadFile([FromForm] FileParam fileParam){// 文件上传string? fileName = fileParam.file?.FileName;// 获取程序所在目录string baseDir = System.AppDomain.CurrentDomain.BaseDirectory + "/upload/";string filePath = baseDir + fileName;// 如果目录不存在,则创建if (!System.IO.Directory.Exists(baseDir)) System.IO.Directory.CreateDirectory(baseDir);// 创建一个文件流FileStream stream = System.IO.File.Create(filePath);// 将上传的文件写入流中fileParam.file?.CopyTo(stream);// 关闭流stream.Close();return ResultUtil.success(true);}}

4、前端如何进行传参
使用form-data传参,方式如下
前端需要使用form-data传参,方式如下:

2.2 文件的下载

开始编写具体的前端控制器
注意,我们的返回值必须是IActionResult 或者它的子类泛型

[Route("[controller]/[action]")]
[ApiController]
public class FileController : ControllerBase{public IActionResult download(){string url = @"D:\xxx\xxx";// 读取文件信息FileInfo fileMetaInfo = new System.IO.FileInfo(url!);// 服务器文件路径string strFilePath = url!;// 创建文件读取流FileStream fileStream = System.IO.File.OpenRead(strFilePath);// 根据文件后缀获取文件的ContentTypevar fileExtensionContentTypeProvider = new FileExtensionContentTypeProvider();// 返回文件contentType类型var contentType = fileExtensionContentTypeProvider.Mappings[".png"];return File(fileStream, contentType, fileMetaInfo.Name);}}

asp.net coree文件上传与下载实例相关推荐

  1. [转载]ASP.NET Core文件上传与下载(多种上传方式)

    ASP.NET Core文件上传与下载(多种上传方式) 前言 前段时间项目上线,实在太忙,最近终于开始可以研究研究ASP.NET Core了. 打算写个系列,但是还没想好目录,今天先来一篇,后面在整理 ...

  2. ASP.NET Core文件上传与下载(多种上传方式)

    前言 前段时间项目上线,实在太忙,最近终于开始可以研究研究ASP.NET Core了. 打算写个系列,但是还没想好目录,今天先来一篇,后面在整理吧. ASP.NET Core 2.0 发展到现在,已经 ...

  3. ASP.NET超大文件上传与下载

    总结一下大文件分片上传和断点续传的问题.因为文件过大(比如1G以上),必须要考虑上传过程网络中断的情况.http的网络请求中本身就已经具备了分片上传功能,当传输的文件比较大时,http协议自动会将文件 ...

  4. ASP.NET Core文件上传、下载与删除

    首先我们需要创建一个form表单如下: <form method="post" enctype="multipart/form-data" asp-con ...

  5. asp.net 文件上传和下载管理源码

    利用asp.net进行文件上传和下载时非常常用的功能,现做整理,将源码上传,提供给初学者参考,以下代码中的样式文件就不上传了,下载者请将样式去掉. 效果图如下: <%@ Page Languag ...

  6. ASP.NET中文件上传下载方法集合

    asp.net 2008-08-23 21:10:35 阅读0 评论0   字号:大中小 订阅 ASP.NET中文件上传下载方法集合 文件的上传下载是我们在实际项目开发过程中经常需要用到的技术,这里给 ...

  7. 2014-07-23 利用ASP.NET自带控件实现单文件上传与下载

    效果图 上传文件页面: 下载文件页面:   1.母版页site.Master <%@ Master Language="C#" AutoEventWireup="t ...

  8. ASP.NET 文件上传于下载

    本文主要介绍一下,在APS.NET中文件的简单上传于下载,上传是将文件上传到服务器的指定目录下,下载是从存入数据库中的路径,从服务器上下载. 1.上传文件 (1)页面代码 <table alig ...

  9. ASP.NET MVC实现简单的文件上传与下载

    使用ASP.NET MVC实现简单的文件上传与下载. 1.上传文件HTML <form action='@Url.Action("Upload", "File&qu ...

最新文章

  1. 从云到端,谷歌的AI芯片2.0
  2. hadoop过程中遇到的错误与解决方法
  3. 轻量级DAO层实践初体验
  4. 使用 CodeIgniter 框架快速开发 PHP 应用(五)
  5. 人工合成维生素E和天然维生素E的区别
  6. 多路复用与设置阻塞、非阻塞模式
  7. win10系统崩溃怎么修复_系统崩溃怎么重装系统图文教程
  8. flex file 文件上传 带参数 php,php+flex打造多文件带进度超级上传
  9. GitHub Package Registry 发布!你依旧是那个我们所爱的 GitHub!
  10. acr122ua9读写软件_NFC读卡器ACR122U-A9 非接触型IC读写器 龙杰读卡器 IC解密器
  11. RTMP 两种方式推流:推H.264、ACC和推FLV封装格式
  12. JavaScript实现手机震动效果
  13. 联想笔记本电脑键盘灯怎么开启_联想的键盘灯怎么开_联想笔记本键盘亮灯按哪个键-win7之家...
  14. 麒麟 android os,华为自研麒麟OS国产手机系统却要继续用安卓,居然是这个原因!...
  15. python四叶玫瑰数判断_四叶玫瑰数
  16. Kotlin 主构造函数与次构造函数的理解
  17. PDF怎么转WPS?这么操作非常简单
  18. 一文讲解ElasticSearch
  19. 上微信怎么同时用计算机,想同时在电脑上登录多个微信(微信多开)?用start指令可以解决...
  20. 做好社群营销,这些你怎么知道去做?

热门文章

  1. 读了阮邵峰《外挂代练是什么罪?》《南京外挂代练案的二审判决》系列文章有感
  2. 变频电源故障:变频电源IGBT烧坏的原因是什么
  3. 微信小程序学习用demo推荐:微信涂鸦、canvas学习
  4. 超详细OpenCV之python操作
  5. JETBRAINS开发工具中Translation翻译插件的使用
  6. Gradle 自定义Plugin插件之发送钉钉通知
  7. 关于人机交互的一些思考
  8. 验证IP(VIP)及开发VIP的流程
  9. ABC 236 D(普通dfs,配对
  10. 我们要坚持不懈地追求自己的目标,即使遇到挫折也不要轻易放弃。