学习了普通webapp中上传文件,再看看从MVC项目中通过缓冲方式上传文件到物理文件夹。这两者的区别主要是webapp通过模型绑定的方式传递IFormFile对象,而mvc通过控制器和action传递IFormFile对象,后续对IFromFile对象的处理其实差不多。
  运行下列命令创建mvc项目。

dotnet new mvc -o UploadFileByMVC
code -r UploadFileByMVC

  直接在默认的HomeController类中增加下列两个函数用于上传多个文件和单个文件,代码参照参考文献1-2.

[HttpPost]
public async Task<IActionResult> UploadMultiFile(List<IFormFile> files)
{long size = files.Sum(f => f.Length);foreach (var formFile in files){var filePath = Path.Combine(_targetFilePath, formFile.FileName);if (formFile.Length > 0){using (var stream = new FileStream(filePath, FileMode.Create)){await formFile.CopyToAsync(stream);}}}return Ok(new { count = files.Count, size });
}[HttpPost]
public async Task<IActionResult> UploadSingleFile(IFormFile file)
{var filePath = Path.Combine(_targetFilePath, file.FileName);if (file.Length > 0){using (var stream = new FileStream(filePath, FileMode.Create)){await file.CopyToAsync(stream);}}return Ok(new { count = 1 ,file.Length });
}

  页面就是将之前上传单个文件和多个文件的表单混在了一起,代码和截图如下:

<p>多文件上传:</p><form method="post" enctype="multipart/form-data" asp-controller="Home" asp-action="UploadMultiFile"><div><input type="file" name="files" multiple /></div><div><input type="submit" value="Upload" /></div>
</form><p>单文件上传:</p>
<form method="post" enctype="multipart/form-data" asp-controller="Home" asp-action="UploadSingleFile"><div><input type="file" name="file" /></div><div><input type="submit" value="Upload" /></div>
</form>


  程序比较简单,可以正常运行,微软示例中还包括列出缓冲文件夹的文件清单的功能,后面准备把这块代码剥处来放在本文的项目中。

参考文献:
[1]https://blog.csdn.net/tie123000/article/details/96868206
[2]https://blog.csdn.net/weixin_41960204/article/details/107575845?spm=1001.2101.3001.6650.14&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7ERate-14-107575845-blog-96868206.pc_relevant_paycolumn_v3&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7ERate-14-107575845-blog-96868206.pc_relevant_paycolumn_v3

ASP.Net Core创建MVC项目上传文件(缓冲方式)相关推荐

  1. Asp.Net Core Web Api图片上传及MongoDB存储实例教程(一)

    图片或者文件上传相信大家在开发中应该都会用到吧,有的时候还要对图片生成缩略图.那么如何在Asp.Net Core Web Api实现图片上传存储以及生成缩略图呢?今天我就使用MongoDB作为图片存储 ...

  2. Asp.Net Core Web Api图片上传(一)集成MongoDB存储实例教程

    Asp.Net Core Web Api图片上传(一)集成MongoDB存储实例教程 原文:Asp.Net Core Web Api图片上传(一)集成MongoDB存储实例教程 Asp.Net Cor ...

  3. Spring MVC实现上传文件报错解决方案

    Spring MVC实现上传文件报错解决方案 参考文章: (1)Spring MVC实现上传文件报错解决方案 (2)https://www.cnblogs.com/liuling/p/2014-3-5 ...

  4. spring mvc(注解)上传文件的简单例子

    spring mvc(注解)上传文件的简单例子,这有几个需要注意的地方 1.form的enctype="multipart/form-data" 这个是上传文件必须的 2.appl ...

  5. SpringBoot 项目上传文件异常【java.io.IOException: Stream closed】

    项目场景: 提示:这里简述项目相关背景: 项目场景:SpringBoot 项目上传文件接口异常 21 十二月 2022 13:30:53,132 36991 [http-nio-9220-exec-3 ...

  6. GitHub 之 创建分支并上传文件

    本篇文章将讲述如何通过 git 的一款命令行工具 Git Bash 对 Github 账户中的目标远程库 新建分支 并 上传文件 至该分支! 先说明本篇博客所用到 Git Bash 的些许指令: 1 ...

  7. 华为服务器上传文件,服务器上传文件的方式

    服务器上传文件的方式 内容精选 换一换 外部镜像文件在从原平台导出前,没有按照"Windows操作系统的镜像文件限制"的要求完成初始化操作,推荐您使用弹性云服务器完成相关配置.流程 ...

  8. ASP .NET Core Web MVC系列教程:使用ASP .NET Core创建MVC Web应用程序

    本系列教程翻译自微软官方教程,官方教程地址:Get started with ASP.NET Core MVC | Microsoft Docs 本系列教程介绍了构建MVC Web应用程序的基础知识. ...

  9. C# ASP.NET MVC 图片上传的多种方式(存储至服务器文件夹,阿里云oss)

    图片上传时我们进场用到的一个功能今天将他整理了一下写了个demo希望对大家有用 该demo分为如下 1.上传至至服务器文件夹 2.上传至阿里云oss 3.百度webupload上传图片 效果图如下: ...

最新文章

  1. firefox下的调试工具
  2. 二叉树后序遍历-递归与非递归(左右根)
  3. 【网络安全】SQL注入攻击思路手法总结(上)
  4. 用汇编的眼光看C++(之判断流程)
  5. 【AI视野·今日CV 计算机视觉论文速览 第213期】Fri, 4 Jun 2021
  6. python画图指定起点_python3绘图示例6-1(基于matplotlib,绘图流程介绍及设置等)...
  7. python中copytree的用法_python复制文件的方法实例详解
  8. jenkins pipeline_Jenkins流水线(pipeline)实战之:从部署到体验
  9. python大神写的代码_【python】抄写大神的糗事百科代码
  10. 春运首日 广西桂林火车站向旅客“送万福”
  11. JVM学习02-虚拟机的基本结构
  12. 优先级继承 linux,非独占锁的优先级继承协议及其在Linux下的实现
  13. 千图成像python_爬取英雄联盟所有皮肤图片实现千图成像!Python真强!!
  14. 如何申请成为企业微信,并成为第三方服务商
  15. 【loj2567】【APIO2016】划艇
  16. 练习题目---光照度
  17. Linux进程间通信(下)
  18. 干货!我开发 Android 是如何界面设计的
  19. document.write详解
  20. 简单 python 爬虫(一)

热门文章

  1. 笔记本重置找不到恢复环境_重置Win10电脑时提示找不到恢复环境的解决教程
  2. 刚做外贸,先做平台好还是独立站好?
  3. 网站添加自动获取ICP备案号
  4. 听说90%的ASOer都不懂这个应用内购ASO获量法
  5. 华为gauss数据库常见的13种数据类型介绍
  6. 双鸭山2021年高考成绩查询,2021年双鸭山高考状元是谁分数多少分,历年双鸭山高考状元名单...
  7. 面对新技术,必须找到与其发展相辅相成的长期主义的方法
  8. C++结构体和类的区别
  9. Electron 打包exe方法
  10. 【主题世界】阿狸对着你卖萌桌面主题