.NET Core 文件的上传与下载
1.前言
文件导入导出是简单且常用的功能,以下示例实现了文件上传与下载的几种方法,如有不妥的地方,欢迎指正。小白一枚,在往目标前进。
2.1.文件上传 -- 纯文件
<form action="/Home/Index" method ="post" enctype="multipart/form-data" >
<input type="file" multiple/>
<input id="upload" type="submit" />
</form>
[HttpPost]
public IActionResult Index(List<IFormFile> files)
{
foreach (var file in files)
{
//获取文件名
var fileName = file.FileName;
//保存在wwwroot文件夹下
fileName = hostingEnv.WebRootPath + $"\\{fileName}"; using (FileStream fs = System.IO.File.Create(fileName))
{
file.CopyTo(fs);
fs.Flush();
}
}
return View();
}
2.2.文件上传 -- 多类型内容上传
对于这种不只有文件的表单,可以采用模型绑定的方式。
<form action="/Home/Index" method ="post" enctype="multipart/form-data" >
<input type="file" multiple/>
<input type="text" name="Name"/>
<input id="upload" type="submit" />
</form>
/// <summary>
/// 表单上传文件
/// </summary>
/// <param name="files"></param>
/// <returns></returns>
[HttpPost]
public IActionResult Index(FormObject obj)
{
foreach (var file in obj.Files)
{
//获取文件名
var fileName = ContentDispositionHeaderValue
.Parse(file.ContentDisposition)
.FileName
.Trim('"');
fileName = hostingEnv.WebRootPath + $"\\{fileName}";
using (FileStream fs = System.IO.File.Create(fileName))
{
file.CopyTo(fs);
fs.Flush();
}
}
return View();
}
//模型类
public class FormObject {
public List<IFormFile> Files{ get; set; }
public string Name { get; set; }
}
2.3.文件上传 -- Ajax上传
<input type="text" name="Name" value="123"/>
<input type="file" id="fileUpload" name="fileUpload" multiple/>
<input id="upload" type="button" value="ajax 提交"/>
<script type="text/javascript">
$(function () {
$("#upload").click(function (evt) {
///取选择的文件加入FormData中
var fileUpload = $("#fileUpload").get(0);
var files = fileUpload.files;
var data = new FormData();
for (var i = 0; i < files.length; i++) {
data.append(files[i].name, files[i]);
}
// data.append("Name", $('input[name="Name"]').val())
$.ajax({
type: "POST",
url: "http://192.168.0.175:8095/api/Organization",
contentType: false,
processData: false,
data: data,
success: function (message) {
alert(message);
},
error: function () {
alert("上传文件出现错误!");
}
});
});
});
</script>
/// <summary>
/// 通过ajax上传
/// </summary>
/// <returns></returns>
public IActionResult UploadFiles()
{var files = Request.Form.Files;
var value =Request.Form.First(c => c.Key == "Name").Value;//获得表单文本项
foreach (var file in files)
{
var fileName = file.FileName;
fileName = hostingEnv.WebRootPath + $@"\{fileName}";using (FileStream fs = System.IO.File.Create(fileName))
{
file.CopyTo(fs);
fs.Flush();
}
}
return RedirectToAction("/Export", new { Title ="",Name = });
}
3.3.文件下载
[HttpGet]
public IActionResult ExportText()
{ string sFileName = $@"qmhuangtext{DateTime.Now.ToString("yyyyMMddHHmmss")}.txt";
FileStream fs =new FileStream(sFileName,FileMode.OpenOrCreate);
StreamWriter sw = new StreamWriter(fs);
sw.WriteLine("Hello world");
sw.Flush();
sw.Close();
fs.Close();
return File(new FileStream(sFileName, FileMode.Open), "application/octet-stream", $"导出测试{DateTime.Now.ToString("yyyyMMddHHmmss")}.txt");
}
.NET Core 文件的上传与下载的更多相关文章
- jsp+servlet实现文件的上传和下载
实现文件的上传和下载首先需要理解几个知识,这样才可以很好的完成文件的上传和下载: (1):上传文件是上传到服务器上,而保存到数据库是文件名 (2):上传文件是以文件转换为二进制流的形式上传的 (3): ...
- 文件的上传和下载--SpringMVC
文件的上传和下载是项目开发中最常用的功能,例如图片的上传和下载.邮件附件的上传和下载等. 接下来,将对Spring MVC环境中文件的上传和下载进行详细的讲解. 一.文件上传 多数文件上传都是通过表单 ...
- java 文件的上传和下载
主要介绍使用 smartupload.jar 包中的方法对文件的上传和下载.上传时文件是存放在服务器中,我用的是tamcat. 首先建立一个servlet 类,对文件的操作 package com.d ...
- JavaWeb中文件的上传和下载
JavaWeb中文件的上传和下载 转自: JavaWeb学习总结(五十)——文件上传和下载 - 孤傲苍狼 - 博客园https://www.cnblogs.com/xdp-gacl/p/4200090 ...
- .net web开发——文件的上传和下载
以ASP.NET Core WebAPI 作后端 API ,用 Vue 构建前端页面,用 Axios 从前端访问后端 API ,包括文件的上传和下载. 准备文件上传的API #region 文件上传 ...
- java实现ftp文件的上传与下载
最近在做ftp文件的上传与下载,基于此,整理了一下资料.本来想采用java自带的方法,可是看了一下jdk1.6与1.7的实现方法有点区别,于是采用了Apache下的框架实现的... 1.首先引用3个包 ...
- 在SpringMVC框架下实现文件的 上传和 下载
在eclipse中的javaEE环境下:导入必要的架包 web.xml的配置文件: <?xml version="1.0" encoding="UTF-8" ...
- SecureCRT使用sz和rz命令进行文件的上传和下载
SecureCRT可以使用sz和rz命令进行文件的上传和下载. sz文件下载: 格式:sz 文件名称 即可将服务器的文件下载至本地. rz文件上传: 格式:rz 文件名称 即可将本地文件上传至服务器. ...
- 使用FTPClient进行文件服务器内文件的上传和下载
我用的FTPClient是由Apache组织的commons-net.jar包中的API,这个包用起来非常的方便,很容易上手.我在项目开发的过程中主要用到了文件的上传和下载功能,下面将我开发的代码贴出 ...
随机推荐
- Throwing Dice LightOJ - 1064 || (勉强能用的)分数类
Throwing Dice LightOJ - 1064 方法: 设ans[i][j]表示i个骰子点数恰好为j的概率.那么ans[1][1]到ans[1][6]都为1/6. 显然,$ans[i][j] ...
- Codeforces Round #323 (Div. 2)
被进爷坑了,第二天的比赛改到了12点 水 A - Asphalting Roads /************************************************ * Author ...
- 今天发现一个汉字转换成拼音的模块,记录一下,直接pip install xpinyin即可
http://blog.csdn.net/qq_33232071/article/details/50915760
- [在读]javascript框架设计
司徒正美的书,内容我觉得不错,国内的书很少会讲这些.当然也有很多人吐槽它只贴代码没有解释,文笔不够优美啥啥的,我想说,不要在意这些细节,反正是值得买的一本.
- DDR SDRAM
DDR SDRAM(Double Data Rate SDRAM)是一种高速CMOS.动态随机访问存储器, 它采用双倍数据速率结构来完成高速操作.应用在高速信号处理系统中, 需要缓存高速.大量的数据的 ...
- IOS开发之关于UIButton点击没有响应问题
1.如果一个UIButton的frame超出父视图的frame,UIButton还是可以显现的,但响应不了点击事件了,当开发中,遇到UIButton点击没有响应问题时,我们需要输出btn及它父视图的f ...
- Centos 6 安装python2.7.6
centos 是自带python的.但是版本稍微旧一些.搞python开发,肯定要用新一点的稳定版.所以,要升级一下python. 先去python主站下载python的源码包:Python-2.7. ...
- 我来解数独(附delphi源码)
前段时间看到“69岁农民3天破解世界最难数独游戏”,然后在看了那个号称世界最难的数独题目之后,就打算抽空编程解决.今晚抽出一个晚上,大约四五个小时的时间,中间还间歇在clash of clans上造兵 ...
- SQL Server2012 T-SQL对分页的增强尝试
简介 SQL Server 2012中在Order By子句之后新增了OFFSET和FETCH子句来限制输出的行数从而达到了分页效果.相比较SQL Server 2005/2008的ROW_Numbe ...
- 在SQLServer使用触发器实现数据完整性
1.实现数据完整性的手段 在sqlserver中,在服务器端实现数据完整性主要有两种手段:一种是在创建表时定义数据完整性,主要分为:实体完整性.域完整性.和级联参照完整性:实现的手段是创建主键约束.唯 ...