一、上传文件

  1、普通的form表单提交

  注意点:

  1. 请求方式必须为Post。
  2. form表单里必须设置enctype属性(enctype = "multipart/form-data")

下面的代码是实现Demo:  

<div class="row">
@using(Html.BeginForm("Export", "Home", FormMethod.Post, new { @class = "form-horzoontal", @enctype = "multipart/form-data" }))
{
<div class="form-group">
<label class="label-control">请选择文件</label>
<div class="col-md-4">
@Html.TextBox("File","", new { @type="file",@class="form-ontrol"})
</div>
</div>
<div class="form-group">
<div class="clearfix">
<button type="submit" class="btn btn-primary">
<i class="icon-ok"></i>提交
</button>
<button type="reset" class="btn btn-danger">
<i class="icon-undo"></i>重置
</button>
</div>
</div>
}
</div>
/// <summary>
/// 提交文件
/// </summary>
[HttpPost]
public void Export(HttpPostedFileBase File)
{
//HttpFileCollection files = System.Web.HttpContext.Current.Request.Files;
//HttpPostedFile file = files[0];
//拓展名
string Extension = System.IO.Path.GetExtension(File.FileName);
//文件名
string FileName = DateTime.Now.ToFileTime() + Extension;
//文件存放路径
string Path = Server.MapPath("~/upload/");
//如果文件路径不存在
if (!System.IO.Directory.Exists(Path))
{
System.IO.Directory.CreateDirectory(Path);
} File.SaveAs(Path + "//" + FileName);
}

  2、Ajax表单提交 

  注意点:

  1. 导入jquery.unobtrusive-ajax.min.jsjquery.form.js两个引用。
  2. 提交的时候必须用 $("#form").ajaxSubmit()的提交方式。否则接收不到文件流。 

  下面的代码是实现Demo:

<div class="row">
@using(Ajax.BeginForm("Export", "Home", null,new AjaxOptions { HttpMethod="Post"}, new {@id="form", @class = "form-horzoontal", @enctype = "multipart/form-data" }))
{
<div class="form-group">
<label class="label-control">请选择文件</label>
<div class="col-md-4">
@Html.TextBox("File","", new { @type="file",@class="form-ontrol"})
</div>
</div>
<div class="form-group">
<div class="clearfix">
<button type="button" class="btn btn-primary" onclick="sub()">
<i class="icon-ok"></i>提交
</button>
<button type="reset" class="btn btn-danger">
<i class="icon-undo"></i>重置
</button>
</div>
</div>
}
</div>
@section Scripts{
<script src="~/Scripts/jquery-1.8.2.min.js"></script>
<script src="~/Scripts/jquery.form.js"></script>
<script src="~/Scripts/jquery.unobtrusive-ajax.min.js"></script>
<script>
//ajax提交表单
function sub() {
$("#form").ajaxSubmit();
}
</script>
}
/// <summary>
/// 提交文件
/// </summary>
[HttpPost]
public void Export(HttpPostedFileBase File)
{
//HttpFileCollection files = System.Web.HttpContext.Current.Request.Files;
//HttpPostedFile file = files[0];
//拓展名
string Extension = System.IO.Path.GetExtension(File.FileName);
//文件名
string FileName = DateTime.Now.ToFileTime() + Extension;
//文件存放路径
string Path = Server.MapPath("~/upload/");
//如果文件路径不存在
if (!System.IO.Directory.Exists(Path))
{
System.IO.Directory.CreateDirectory(Path);
} File.SaveAs(Path + "//" + FileName);
}

二、下载文件

  下面是两种实现方式

  1、

/// <summary>
/// 下载文件
/// </summary>
public void DownloadFile()
{
//获取respone对象
HttpResponse respone = System.Web.HttpContext.Current.Response;
//文件绝对路径
string Path = Server.MapPath("~/upload/131348099436645924.JPG");
string fileName = System.IO.Path.GetFileName(Path);
System.IO.FileInfo file = new FileInfo(Path);
Response.AddHeader("Content-Disposition", "attachment;filename=\"" + HttpUtility.UrlEncode(fileName, System.Text.Encoding.UTF8) + "\"");
Response.AddHeader("Content-Length", file.Length.ToString());
//响应类型
Response.ContentType = "application/octet-stream";
Response.WriteFile(Path);
Response.Flush();
Response.End();
}

  2、

/// <summary>
/// 下载文件
/// </summary>
public FileResult DownloadFile()
{
//文件绝对路径
string Path = Server.MapPath("~/upload/131348099436645924.JPG");
string fileName = System.IO.Path.GetFileName(Path);
return File(Path, "application/octet-stream",fileName);
}

.Net 上传文件和下载文件的更多相关文章

  1. Xshell 本地上传、远程下载文件

    1.Xshell登录工具在创建会话的时候,点击最下面的ZMODEM,可以填写下载的路径和加载的路径:2个路径可以一样也可以不一样: 在下载的时候可以下载到相应的路径去.(我设置的是下载前始终询问) 2 ...

  2. Selenium(十一):设置元素等待、上传文件、下载文件

    1. 设置元素等待 前面我们接触了几个元素等待方法,sleep.implicitly_wait方法,这一章我们就来整体学一下. 现在大多数Web应用程序使用的都是AJAX技术.当浏览器加载页面时,页面 ...

  3. svn上传工程之后下载,打开下载之后的工程缺少文件

    当我们把iOS的工程上传到SVN中,当我们再从SVN中下载下来,就会出现错误,这是什么原因呢?我这里出现的错误是找不到文件,后来知道原来是被屏蔽掉了,就是上传的时候不上传某个类型的文件.例如我出错就是 ...

  4. Java ftp 上传文件和下载文件

    今天同事问我一个ftp 上传文件和下载文件功能应该怎么做,当时有点懵逼,毕竟我也是第一次,然后装了个逼,在网上找了一段代码发给同事,叫他调试一下.结果悲剧了,运行不通过.(装逼失败) 我找的文章链接: ...

  5. tp3.2 上传文件及下载文件

    公共方法 UploadFile.class.php() // 开始 , , , ,];];,; ;; ::::::;,) {//文件上传失败 //捕获错误代码$this->error($file ...

  6. C# FileStream进行FTP服务上传文件和下载文件

    定义FileStream类的操作类:操作类名: FtpUpDown 上传文件 /// <summary> /// 上传文件 /// </summary> /// <par ...

  7. Loadrunner上传文件与下载文件脚本

    Loadrunner上传文件与下载文件脚本 一. 上传脚本 Action() { int uploadImgStatus = 0; //获取上传产品图ID web_reg_save_param_ex( ...

  8. katalon系列十二:自动化上传文件、下载文件

    一.下载文件1.下载文件时,需要先设置好Chrome/Firefox下载路径.不弹出下载框等,大家先学习下在selenium下如何设置:https://www.cnblogs.com/fnng/p/7 ...

  9. Struts2实现文件的上传与动态下载功能。

    本篇主要使用Struts2实现文件的上传与动态下载功能.出于安全考虑,所以,在硬盘上存储上传的文件的时候,统一都重新命名为随机字符串.用数据库存储真实文件名与随机文件名称之间的关联. 下面的是实体类 ...

  10. Delphi阿里云对象存储OSS【支持上传文件、下载文件、删除文件、创建目录、删除目录、Bucket操作等】

    作者QQ:(648437169) 点击下载➨Delphi阿里云对象存储OSS             阿里云api文档 [Delphi阿里云对象存储OSS]支持 获取Bucket列表.设置Bucket ...

随机推荐

  1. Python3.6+Scrapy爬取知名技术文章网站

    爬取分析 伯乐在线已经提供了所有文章的接口,还有下一页的接口,所有我们可以直接爬取一页,再翻页爬. 环境搭建 Windows下安装Python: http://www.cnblogs.com/0bug ...

  2. Excel操作小结

    插入下拉选择(例如类型):选中单元格==>数据有效性==>数据有效性==>设置/有效性条件==>系列(下拉框内容用英文逗号分开): 插入下拉框设置不同背景色:选择需要设置的单元 ...

  3. windows2008系统缓存修改

    Windwos Server 2008 中经常有物理内存占用较高,但任务管理器中各进程的内存看起来占用并不多情况. 这可能是由于OS为保证服务器性能不限制系统缓存,服务器系统长时间执行I/O,系统文件 ...

  4. java高并发编程(四)高并发的一些容器

    摘抄自马士兵java并发视频课程: 一.需求背景: 有N张火车票,每张票都有一个编号,同时有10个窗口对外售票, 请写一个模拟程序. 分析下面的程序可能会产生哪些问题?重复销售?超量销售? /** * ...

  5. 廖雪峰Java-3流程控制-7for循环

    for循环 for循环使用计数器实现循环 for循环条件需要设置:计数器初始值:循环前检测条件:每次循环后如何更新计数器 计数器变量通常命名为i int[] ns = {1,4,9,16,25}; f ...

  6. 记录Linux下解压大文件时的一次奇葩经历

    由于需要安装新的系统,使用wget下载tar包,8G多下载了1个多小时.解压完后的文件夹中的tar包数量明显不够,而且原始的tar包竟然不见了. 同样的操作又进行了一次,结果还是一样,不得不怀疑是哪里 ...

  7. PHP中的static的理解

    静态方法 (1)静态方法不能访问这个类中的普通属性,因为那些属性属于一个对象,但可以访问静态属性: (2)从当前类(不是子类)中访问静态方法或属性,可以使用 self 关键字,self 指向当前类,就 ...

  8. 禅道-bug管理系统部署

    官方下载: https://www.zentao.net/framework/zentao11.2-80109.html 官方使用说明:(含安装及使用说明,很详细) https://www.zenta ...

  9. Git及GitLab使用手册

    一.GitBash安装与使用 参考: https://www.cnblogs.com/jasonxu19900827/p/7823089.html 二.SourceTree安装与使用 SourceTr ...

  10. sklearn不同数量的训练集在测试集上的表现的曲线刻画

    def plot_learning_curve(estimator,X,y,cv=5,train_sizes=[0.1,0.3,0.5,0.7,0.8,0.9]): """ ...