上传文件有很多种方法,这里主要讲解的是spring mvc内提供的文件上传

前提使用:spring mvc

在这个之前我们需要把环境给配置好

1:springmvc的XML配置文件加上这一段就即可,

<!-- 配置文件上传 -->
<!--**1024即200M resolveLazily属性启用是为了推迟文件解析,以便捕获文件大小异常 -->
<bean id="multipartResolver"
class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<property name="maxUploadSize" value="" />
<property name="maxUploadSizePerFile" value=""/>
<property name="defaultEncoding" value="UTF-8" />
<property name="resolveLazily" value="true" />
</bean>

2:在JSP页面我们需要注意的一点是需要在form标签里面加上

enctype="multipart/form-data"  这一段

 <form class="layui-form" action="" method="post" enctype="multipart/form-data">
 ………… 
 <input type="file" name="ufiles"/>
…………
<form>

3:在控制层接收文件,实现上传

 //在控制层接受到文件,然后调用文件上传方法
//方法返回的是一个存入数据库的路径,也可以根据自己需求进行修改
@RequestMapping("/updateUser")
public String updateUser(MultipartFile ufiles,HttpSession session){
     //调用上传文件方法,返回一个保存到数据库的路径
String imgUrl= FileUploading.uploading(ufiles,session);
return "redirect:/userPage/update.jsp";
}

4:文件上传方法

public class FileUploading {

    /**
* 文件上传
* @param ufiles
* @param session
* @return 保存到数据库的路径
*/
public static String uploading(MultipartFile ufiles, HttpSession session){
if(!ufiles.isEmpty()){
//获取放置图片的路径
String beanPath = session.getServletContext().getRealPath("/images");
//获取图片名字
String realName = ufiles.getOriginalFilename();
try {
//开始上传
ufiles.transferTo(new File(beanPath+"/"+realName));
//保存路径到数据库
String imgUrl = session.getServletContext().getContextPath()+"/images/"+realName;
return imgUrl;
} catch (IOException e) {
e.printStackTrace();
}
}
return null;
}
}

对于上传文件命名的处理每个人都有不同的方法,在这里不做讲解。

spring mvc 简单的文件上传与下载的更多相关文章

  1. 1.6(Spring MVC学习笔记)文件上传与下载

    一.文件上传 实现文件上传多数是采用表单提交数据, 但对于进行文件上传的表单需要满足一下几个条件 1.表单的method设置为post 2.表单的enctype设置为multipart/form-da ...

  2. 关于我使用spring mvc框架做文件上传时遇到的问题

    非常感谢作者 原文:https://blog.csdn.net/lingirl/article/details/1714806 昨天尝试着用spring mvc框架做文件上传,犯了挺多不该犯的毛病问题 ...

  3. 使用jsp/servlet简单实现文件上传与下载

    使用JSP/Servlet简单实现文件上传与下载    通过学习黑马jsp教学视频,我学会了使用jsp与servlet简单地实现web的文件的上传与下载,首先感谢黑马.好了,下面来简单了解如何通过使用 ...

  4. 简单的文件上传的下载(动态web项目)

    1.在页面中定义一个form表单,如下: <!-- 文件上传 --> <form action="${pageContext.request.contextPath}/Fi ...

  5. SSM简单实现文件上传和下载

    一.配置spring-mvc <!-- 配置多媒体文件解析器 --> <bean id="multipartResolver" class="org.s ...

  6. spring MVC multipart处理文件上传

    在开发Web应用程序时比较常见的功能之一,就是允许用户利用multipart请求将本地文件上传到服务器,而这正是Grails的坚固基石——Spring MVC其中的一个优势.Spring通过对Serv ...

  7. spring mvc中的文件上传

    使用commons-fileupload上传文件所需要的架包有:commons-fileupload 和common-io两个架包支持,可以到Apache官网下砸. 在配置文件spring-mvc.x ...

  8. 【Spring学习笔记-MVC-13.2】Spring MVC之多文件上传

    作者:ssslinppp       1. 摘要 前篇文章讲解了单文件上传<[Spring学习笔记-MVC-13]Spring MVC之文件上传>http://www.cnblogs.co ...

  9. Spring MVC 全局异常处理&文件上传

    Spring MVC 全局异常处理 使用SimpleMappingExceptionResolver实现异常处理 在welcome-servlet.xml进行如下配置: <bean class= ...

随机推荐

  1. Asp.net MVC WebApi项目的自动接口文档及测试功能打开方法

    https://blog.csdn.net/foren_whb/article/details/78866133

  2. IP地址子网划分

    广播数据包: 要弄清为何需要划分子网,就需要了解网络传输过程中的广播概念. 经过多年的发展,交换机基本替代集线器,成为网络中主要的端终接入网络的基础设备,这也使得广播包发送数量有明显的减少,但交换机一 ...

  3. vue cli 3.0创建项目

    .npm i -g @vue/cli .vue create my-project 此处有两个选择: 1.default (babel, eslint)默认套餐,提供babel和eslint支持 2. ...

  4. elasticsearch 之编译过程

    https://github.com/elastic/elasticsearch/blob/master/CONTRIBUTING.md 不同的版本需要指定JDK 可以下载openJDK版本到服务器上 ...

  5. linux发展

    硬件 1946年诞生于宾夕法尼亚州,占地170平米,重量达到30吨,名字叫做ENIAC(electronic numerical integrator and calculator)主要作用是为美国国 ...

  6. Unable to find a constructor to use for type System.Security.Claims.Claim. A class should either have a default constructor

    Newtonsoft.Json DeserializeObject 反序列化  IdentityServer4.Models Cliecnt 错误: Newtonsoft.Json.JsonSeria ...

  7. Java之.jdk卸载-Linux

    Java之.jdk卸载-Linux 卸载Linux自带的jdk 首先查询: #  rpm -qa | grep jdk 使用root账户,进行卸载: # yum -y remove xxxxxxxx( ...

  8. JDK8 HashMap--removeNode()移除节点方法

    /*删除节点*/ final Node<K,V> removeNode(int hash, Object key, Object value, boolean matchValue, bo ...

  9. MVC 使用缓存

    public AController() { ViewBag[); } private List<BlogsClass> GetClass(int parentId) { List< ...

  10. C++ cout格式化输出

    表1:C++ 流操纵算子 流操纵算子 作  用 *dec 以十进制形式输出整数 常用 hex 以十六进制形式输出整数 oct 以八进制形式输出整数 fixed 以普通小数形式输出浮点数 scienti ...