ASP.NET Core文件上传、下载与删除
首先我们需要创建一个form表单如下:
<form method="post" enctype="multipart/form-data" asp-controller="UpLoadFile" asp-action="FileSave">
<div>
<div>
<p>Form表单多个上传文件:</p>
<input type="file" name="files" multiple />
<input type="submit" value="上传" />
</div>
</div>
</form>
private IHostingEnvironment _hostingEnvironment;
public HomeController(IHostingEnvironment hostingEnvironment)
{
_hostingEnvironment = hostingEnvironment;
}
//[RequestSizeLimit(100_000_000)] //最大100m左右
//[DisableRequestSizeLimit] //或者取消大小的限制
public IActionResult Upload()
{
var files = Request.Form.Files;
long size = files.Sum(f => f.Length);
string webRootPath = _hostingEnvironment.WebRootPath;
string contentRootPath = _hostingEnvironment.ContentRootPath;
List<string> filenames=new List<string>();
foreach (var formFile in files)
{
if (formFile.Length > 0)
{
string fileExt = Path.GetExtension(formFile.FileName); //文件扩展名,不含“.”
long fileSize = formFile.Length; //获得文件大小,以字节为单位
string newFileName = System.Guid.NewGuid().ToString()+ fileExt; //随机生成新的文件名
var filePath = webRootPath + "/upload/";
if (!Directory.Exists(filePath))
{
Directory.CreateDirectory(filePath);
}
using (var stream = new FileStream(filePath+ newFileName, FileMode.Create))
{
formFile.CopyTo(stream);
}
filenames.Add(newFileName);
}
}
return Ok(new { filenames, count = files.Count,size });
}
public IActionResult DownLoad(string file)
{
string webRootPath = _hostingEnvironment.WebRootPath;
var addrUrl = webRootPath+"/upload/"+ file;
var stream = System.IO.File.OpenRead(addrUrl);
string fileExt = Path.GetExtension(file);
//获取文件的ContentType
var provider = new FileExtensionContentTypeProvider();
var memi = provider.Mappings[fileExt];
return File(stream, memi, Path.GetFileName(addrUrl));
}
public IActionResult DeleteFile(string file)
{
string webRootPath = _hostingEnvironment.WebRootPath;
var addrUrl = webRootPath + "/upload/" + file;
if (System.IO.File.Exists(addrUrl))
{
//删除文件
System.IO.File.Delete(addrUrl);
}
return Ok(new { file });
}
转载于:https://www.cnblogs.com/cb521413/p/9366156.html
ASP.NET Core文件上传、下载与删除相关推荐
- [转载]ASP.NET Core文件上传与下载(多种上传方式)
ASP.NET Core文件上传与下载(多种上传方式) 前言 前段时间项目上线,实在太忙,最近终于开始可以研究研究ASP.NET Core了. 打算写个系列,但是还没想好目录,今天先来一篇,后面在整理 ...
- ASP.NET中文件上传下载方法集合
asp.net 2008-08-23 21:10:35 阅读0 评论0 字号:大中小 订阅 ASP.NET中文件上传下载方法集合 文件的上传下载是我们在实际项目开发过程中经常需要用到的技术,这里给 ...
- ASP.NET Core文件上传IFormFile于Request.Body的羁绊
前言 在上篇文章深入探究ASP.NET Core读取Request.Body的正确方式[1]中我们探讨了很多人在日常开发中经常遇到的也是最基础的问题,那就是关于Request.Body的读取方式问题, ...
- minio实现文件上传下载和删除功能
前言 之前用到文件上传功能,在这里做个学习记录.使用minio实现,后面会记录使用fastdfs和阿里云的oss实现文件上传以及他们的比较(oss根据流量收费).minio的中文文档:https:// ...
- ASP.NET Core文件上传与下载(多种上传方式)
前言 前段时间项目上线,实在太忙,最近终于开始可以研究研究ASP.NET Core了. 打算写个系列,但是还没想好目录,今天先来一篇,后面在整理吧. ASP.NET Core 2.0 发展到现在,已经 ...
- Asp.net中文件上传下载的简单实现
1. 文件下载 在asp.net中,如果想点击某aspx的url实现文件下载只要在其Page_Load函数实现目标url的重定向即可.用下列代码即可实现. Response.Redirect(&quo ...
- 百度云和阿里云实现文件上传下载和删除功能
百度云和阿里云类似,本文以百度云为例. 创建百度云对象存储实例 1. 进入百度云官网找到对象存储BOS 2.创建Bucket 3.客户端认证信息 accessKeyId和accessKeySecret ...
- ASP.NET中常用的文件上传下载方法
ASP.NET中常用的文件上传下载方法 文件的上传下载是我们在实际项目开发过程中经常需要用到的技术,这里给出几种常见的方法,本文主要内容包括: 1.如何解决文件上传大小的限制 2.以文件形式保存到服务 ...
- Vue + Element+ ASP.NET Core WebAPI 文件上传下载
以ASP.NET Core WebAPI 作后端 API ,用 Vue 构建前端页面,用 Axios 从前端访问后端 API ,包括文件的上传和下载. 准备asp.net后端文件上传的API Uplo ...
最新文章
- 关于上传文件的跨域问题
- 参加完Python培训后可以找什么工作
- php5.3.8添加eaccelerator扩展 加速php代码执行效率
- Java Review - 使用Event Bus实现目录变化的监控
- 2020国内互联网公司的开源项目及Github地址部分汇总
- Python 序列基本操作
- 链表查找java_Java 实例 – 链表元素查找
- python列表字典元祖_python列表,字典,元组常用方法和集合
- day25-python之继承组合
- DirEqual for Mac(文件夹快速比较工具)
- 11月6日云栖精选夜读:阿里云双11访谈之云安全
- linux limbo镜像文件下载,limbo linux镜像下载
- Redis入门指南-2
- 计算机无法添加本地策略组,win7本地组策略编辑器不能编辑怎么解决
- eregi php5.4,PHP 5.4/5.3弃用函数eregi() memory_limit绕过漏洞
- 影响中国软件人物之:倪光南院士
- Bolt: Anonymous Payment Channels for Decentralized Currencies 学习笔记
- mysql 连续天数_mysql计算连续天数,mysql连续登录天数,连续天数统计
- 百度想象空间还有多少?
- linux认证考试有哪些
热门文章
- 三菱st语言编程实例_LD、FBD、IL、ST、SFC、CFC六种编程语言的特点
- 链式存储mysql_链栈:栈的链式存储结构
- python调用ffmpeg合并_用ffmpeg命令处理mp4剪切与合并
- linux更改用户名_破旧安卓手机第二春,在安卓手机上使用Linux_deploy运行Linux
- MySQL优化filler值_MySQL 性能优化神器 Explain 使用分析
- AMUL的完整形式是什么?
- TAFE的完整形式是什么?
- java反射对象赋值_Java反射详解
- FreeRTOS---堆内存管理(一)
- python免杀技术---shellcode的加载与执行