1.单个文件上传

HTML写法:form表单中加enctype="multipart/form-data"

 <form aciont="" method="post" enctype="multipart/form-data">
<input type="file" id="file" name="file" />
<br/>
<input type="submit" name="提交"/>
</form>

HTML写法:

View写法:同样 form表单中加enctype="multipart/form-data"

 @using (Html.BeginForm("Add", null, FormMethod.Post, new { enctype = "multipart/form-data" }))
{
<input type="file" id="file" name="file" />
<br/>
<input type="submit" value="提交"/>
}

View写法:

后台Controller中的写法:

 [HttpPost]
public ActionResult Add(HttpPostedFileBase file)
{
string path = "/uploadImg/";
if (!Directory.Exists(Server.MapPath(path)))
{
Directory.CreateDirectory(Server.MapPath(path));
}
if (file != null)
{
string filePath = string.Format("{0}/{1}{2}", path, System.Guid.NewGuid(), System.IO.Path.GetExtension(file.FileName));
file.SaveAs(Server.MapPath(filePath));
}
return View();
}

Controller

2.多个文件上传

就是form表单中多个input file

 @using (Html.BeginForm("Index", "Home", FormMethod.Post, new { enctype = "multipart/form-data" }))
{
<input type="file" id="file" name="file1" />
<input type="file" id="file" name="file2" />
<input type="file" id="file" name="file3" />
<input type="file" id="file" name="file4" />
<input type="file" id="file" name="file5" />
<input type="file" id="file" name="file6" />
<br/>
<input type="submit" value="提交"/>
}

View

 public class HomeController:Controller
{
public ActionResult Index()
{
foreach (string upload in Request.Files)
{
if (!Request.Files[upload].HasFile()) continue;
string path = "/uploadImg/";
string filename = Path.GetFileName(Request.Files[upload].FileName);
Request.Files[upload].SaveAs(Path.Combine(path, filename));
}
return View();
}
}

Controller

3.文件下载

HTML中:<a href="/GetFile">下载文件</a>
View中:@Html.ActionLink("下载文件", "Download", "Home");

直接下载到默认下载中

  public class HomeController : Controller
{
public FilePathResult GetFileFromDisk()
{
string path = @"/uploadImg/";
string fileName = "5141fb63-955b-4f0b-9f53-ab770329e6f5.png";
return File(path + fileName, "image/png", fileName);
} public FileStreamResult StreamFileFromDisk()
{
string path = AppDomain.CurrentDomain.BaseDirectory + "uploadImg/";
string fileName = "5141fb63-955b-4f0b-9f53-ab770329e6f5.png";
return File(new FileStream(path + fileName, FileMode.Open), "image/png", fileName);
}
}
}

Controller

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

  1. MVC文件上传与下载

    MVC文件上传与下载 MVC文件上传与下载 想想自己从毕业到工作也有一年多,以前公司的任务的比较重,项目中有的时候需要用到什么东西都去搜索一下,基础知识感觉还没有以前在学校中的好.最近开始写博客,真的 ...

  2. spring mvc文件上传和下载

    首先要导入2个包(上传文件包和io的包)

  3. 0062 Spring MVC的文件上传与下载--MultipartFile--ResponseEntity

    文件上传功能在网页中见的太多了,比如上传照片作为头像.上传Excel文档导入数据等 先写个上传文件的html <!DOCTYPE html> <html> <head&g ...

  4. Java Web 学习(8) —— Spring MVC 之文件上传与下载

    Spring MVC 之文件上传与下载 上传文件 表单: <form action="upload" enctype="multipart/form-data&qu ...

  5. 使用Spring MVC实现文件上传与下载

    前段时间做毕业设计的时候,想要完成一个上传文件的功能,后来,虽然在自己本地搭建了一个ftp服务器,然后使用公司的工具完成了一个文档管理系统:但是还是没有找到自己想要的文件上传与下载的方式. 今天看到一 ...

  6. 文件上传和下载(可批量上传)——Spring(二)

    针对SpringMVC的文件上传和下载.下载用之前“文件上传和下载——基础(一)”的依然可以,但是上传功能要修改,这是因为springMVC 都为我们封装好成自己的文件对象了,转换的过程就在我们所配置 ...

  7. MVC文件上传-使用jQuery.FileUpload和Backload组件实现文件上传

    本篇使用客户端jQuery-File-Upload插件和服务端Badkload组件实现多文件异步上传.MVC文件上传相关兄弟篇: 处理文件上传的服务端组件Backload 用于处理文件上传的服务端组件 ...

  8. ASP.NET MVC 文件上传和路径处理

    ASP.NET MVC 文件上传和路径处理总结 目录 文件的上传和路径处理必须解决下面列出的实际问题: 1.重复文件处理 2.单独文件上传 3.编辑器中文件上传 4.处理文章中的图片路径 5.处理上传 ...

  9. SpringMVC 实现文件上传与下载,并配置异常页面

    目录 上传文件的表单要求 Spring MVC实现上传文件 需要导入的jar包 配置MultipartResolver解析器 编写接收上传文件的控制器 Spring MVC实现文件下载 下载文件时的h ...

随机推荐

  1. zTree开发下拉树

    最近,因为工作需要一个树形下拉框的组件,经过查资料一般有两种的实现方法.其一,就是使用zTree实现:其二,就是使用easyUI实现.因为公司的前端不是使用easyUI设计的,故这里我选择了zTree ...

  2. Eclipse设置、调优、使用(转自)

    转自http://yuanzhifei89.iteye.com/blog/974082 eclipse调优 一般在不对eclipse进行相关设置的时候,使用eclipse总是会觉得启动好慢,用起来好卡 ...

  3. VmWare为Fedora虚拟机扩展磁盘

    1.根据步骤为虚拟机扩展磁盘空间. 查看步骤 2.进入Fedora系统 以下步骤为修改扇区,将扩展磁盘划分为分区 运行fdisk -l,命令执行结果的第一行显示了磁盘名称,同时可以看到当前磁盘分区情况 ...

  4. getGLES1ExtensionString: Could not find GLES 1.x config!

    编辑模拟器中  Emulated performance 中不选  auto 和  Hardware - GLES 2.0,选择Software-GLES2.0.解决问题

  5. StringUtils方法全集

    org.apache.commons.lang.StringUtils中方法的操作对象是java.lang.String类型的对象,是JDK提供的String类型操作方法的补充,并且是null安全的( ...

  6. 用Redis构建分布式锁-RedLock(真分布)

    在不同进程需要互斥地访问共享资源时,分布式锁是一种非常有用的技术手段. 有很多三方库和文章描述如何用Redis实现一个分布式锁管理器,但是这些库实现的方式差别很大,而且很多简单的实现其实只需采用稍微增 ...

  7. B. Shaass and Bookshelf DP

    http://codeforces.com/contest/294/problem/B 据说是贪心,我用了一个复杂度是2e8的dp水过去了. 其实这题就是给你n个数,每个数有两个权值,分成两组,使得第 ...

  8. H5表单中placeholder属性的字体颜色问题

    最近做项目的时候遇到的一些小样式问题,有关表单.并且在接下来几天的面试人中五个人都没有回答上来,改变placeholder属性的默认字体颜色,感觉有必要总结一下. 如何改变默认字体的颜色? @blue ...

  9. JS-小球碰撞反弹

    类似于屏保的一种动画,当小球碰到边框时,发生反弹,并且变化颜色. <!DOCTYPE html><html lang="en"><head>   ...

  10. 匿名函数 lambda表达式(lambda expression)

    阅读g2log时,发现有两行代码居然看不懂. 1. auto bg_call =  [this, log_directory]() {return pimpl_->backgroundChang ...