.Net 上传文件和下载文件
一、上传文件
1、普通的form表单提交
注意点:
- 请求方式必须为Post。
- 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表单提交
注意点:
- 导入jquery.unobtrusive-ajax.min.js和jquery.form.js两个引用。
- 提交的时候必须用 $("#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 上传文件和下载文件的更多相关文章
- Xshell 本地上传、远程下载文件
1.Xshell登录工具在创建会话的时候,点击最下面的ZMODEM,可以填写下载的路径和加载的路径:2个路径可以一样也可以不一样: 在下载的时候可以下载到相应的路径去.(我设置的是下载前始终询问) 2 ...
- Selenium(十一):设置元素等待、上传文件、下载文件
1. 设置元素等待 前面我们接触了几个元素等待方法,sleep.implicitly_wait方法,这一章我们就来整体学一下. 现在大多数Web应用程序使用的都是AJAX技术.当浏览器加载页面时,页面 ...
- svn上传工程之后下载,打开下载之后的工程缺少文件
当我们把iOS的工程上传到SVN中,当我们再从SVN中下载下来,就会出现错误,这是什么原因呢?我这里出现的错误是找不到文件,后来知道原来是被屏蔽掉了,就是上传的时候不上传某个类型的文件.例如我出错就是 ...
- Java ftp 上传文件和下载文件
今天同事问我一个ftp 上传文件和下载文件功能应该怎么做,当时有点懵逼,毕竟我也是第一次,然后装了个逼,在网上找了一段代码发给同事,叫他调试一下.结果悲剧了,运行不通过.(装逼失败) 我找的文章链接: ...
- tp3.2 上传文件及下载文件
公共方法 UploadFile.class.php() // 开始 , , , ,];];,; ;; ::::::;,) {//文件上传失败 //捕获错误代码$this->error($file ...
- C# FileStream进行FTP服务上传文件和下载文件
定义FileStream类的操作类:操作类名: FtpUpDown 上传文件 /// <summary> /// 上传文件 /// </summary> /// <par ...
- Loadrunner上传文件与下载文件脚本
Loadrunner上传文件与下载文件脚本 一. 上传脚本 Action() { int uploadImgStatus = 0; //获取上传产品图ID web_reg_save_param_ex( ...
- katalon系列十二:自动化上传文件、下载文件
一.下载文件1.下载文件时,需要先设置好Chrome/Firefox下载路径.不弹出下载框等,大家先学习下在selenium下如何设置:https://www.cnblogs.com/fnng/p/7 ...
- Struts2实现文件的上传与动态下载功能。
本篇主要使用Struts2实现文件的上传与动态下载功能.出于安全考虑,所以,在硬盘上存储上传的文件的时候,统一都重新命名为随机字符串.用数据库存储真实文件名与随机文件名称之间的关联. 下面的是实体类 ...
- Delphi阿里云对象存储OSS【支持上传文件、下载文件、删除文件、创建目录、删除目录、Bucket操作等】
作者QQ:(648437169) 点击下载➨Delphi阿里云对象存储OSS 阿里云api文档 [Delphi阿里云对象存储OSS]支持 获取Bucket列表.设置Bucket ...
随机推荐
- 黄聪:超实用的PHPExcel[导入][导出]实现方法总结
首先需要去官网https://github.com/PHPOffice/PHPExcel/下载PHPExcel,下载后只需要Classes目录下的文件即可. 1.PHPExcel导出方法实现过程 /* ...
- PHP 获取url里文件的扩展名
PHP 获取url地址中文件的扩展名 $url = 'http://www.abc.com/ab/cd/e.php?id=1&data=2#laowen';echo pathinfo( par ...
- 引用 自动化测试基础篇--Selenium简介
原文链接:http://www.cnblogs.com/sanzangTst/p/7452636.html 鸣谢参藏法师 一.软件开发的一般流程 二.什么叫软件测试? 软件测试(英语:Software ...
- Flex组件参考 代码参考汇总
1:tourdeflex快速熟悉各种组件用法的参考http://www.adobe.com/devnet/flex/tourdeflex.html在线:http://www.adobe.com/dev ...
- bzoj5052: 繁忙的财政官
求区间内相差最小的两个数的差 分sqrt(n)块,预处理两个数在块内,以及一个数在块内一个数在零散部分的情况,询问时归并排序处理两个数都在零散部分的情况,时间复杂度$O((n+q)\sqrt{n})$ ...
- 使用SHOW binlog events查看binlog内容
用mysqlbinlog命令行查看binlog,觉得比较麻烦,突然发现原来mysql有个命令可以直接查看. SHOW BINLOG EVENTS [IN 'log_name'] [FROM pos] ...
- [UE4]圆形的动态材质,使用VectorParameter、Get Dynamic Material、Set Vector Parameter Value
一.新建一个名为M_FriendColor的材质.使用VectorParameter函数 二.新建一个名为FriendFlag的UserWidget,生成随机颜色,并传递给上一步设置的材质参数Colo ...
- IE浏览器强制不是要兼容视图
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <meta ht ...
- Android给TextView设置多个字体颜色
效果如下:
- Abp.Linq.Extensions扩展(1)--static class QueryableExtensions
// 摘要: // Used for paging with an Abp.Application.Services.Dto.IPagedResultRequest object ...