如何使用springmvc实现文件上传

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用springmvc实现文件上传相关的知识,希望对你有一定的参考价值。

参考技术A

在现在web应用的开发,springMvc使用频率是比较广泛的,现在给大家总结一下springMvc的上传附件的应用,希望对大家有帮助,废话不多说,看效果

准备jar包

注意:以上jar包缺一不可

2.搭建框架
2.1.准备springMvc.xml配置文件

2.2.web.xml配置信息

3.准备页面

4.准备上传代码


@Controller//spring使用注解管理bean
@RequestMapping("/upload")//向外暴露资源路径,访问到该类
public class UploadController
/**
* 上传功能
* @return
* @throws IOException
*/
@RequestMapping("/uploadFile")//向外暴露资源路径,访问到该方法
public String uploadFile(MultipartFile imgFile,HttpServletRequest req) throws IOException
if(imgFile != null )
//获取文件输入流
InputStream inputStream = imgFile.getInputStream();
//随机产生文件名,原因是:避免上传的附件覆盖之前的附件
String randName = UUID.randomUUID().toString();//随机文件名
//获取文件原名
String originalFilename = imgFile.getOriginalFilename();
//获取文件后缀名(如:jpg  png...)
String extension = FilenameUtils.getExtension(originalFilename);
//新名字
String newName = randName+"."+extension;
//获取servletContext
ServletContext servletContext = req.getSession().getServletContext();
//获取根路径
String rootPath = servletContext.getRealPath("/");

File file = new File(rootPath,"upload");
//判断文件是否存在,若不存在,则创建它
if(!file.exists())
file.mkdirs();

//获取最终输出的位置
FileOutputStream fileOutputStream = new FileOutputStream(new File(file,newName));
//上传附件
IOUtils.copy(inputStream, fileOutputStream);

return null;

springmvc怎么将上传本地文件到文件服务器

Spring MVC为文件上传提供了直接的支持,这种支持是通过即插即用的MultipartResolver实现的。Spring使用Jakarta Commons FileUpload 技术实现了一个MultipartResolver实现类:CommonsMultipartResolver。
Spring MVC上下文中默认没有装配MultipartResolver,因此默认情况下不能处理文件的上传工作。如果想要使用Spring的文件上传功能,需要先在上下文中配置MultipartResolver。
第一步:配置MultipartResolver
使用CommonsMultipartResolver配置一个MultipartResolver解析器:
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"
p:defaultEncoding="UTF-8"
p:maxUploadSize="5242880"
参考技术A Spring MVC上下文中默认没有装配MultipartResolver,因此默认情况下不能处理文件的上传工作。如果想要使用Spring的文件上传功能,需要先在上下文中配置MultipartResolver。
配置MultipartResolver
使用CommonsMultipartResolver配置一个MultipartResolver解析器:
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"
p:defaultEncoding="UTF-8"
p:maxUploadSize="5242880"
p:uploadTempDir="upload/temp"
/>

defaultEncoding必须和用户JSP的pageEncoding属性一致,以便正确读取表单的内容。uploadTempDir是文件上传过程所使用的临时目录,文件上传完成后,临时目录中的临时文件会被自动清除。本回答被提问者采纳

以上是关于如何使用springmvc实现文件上传的主要内容,如果未能解决你的问题,请参考以下文章

SpringMVC处理文件上传

springMVC两种方式实现多文件上传及效率比较

springMVC实现 MultipartFile 多文件上传,StandardMultipartHttpServletRequest上传文件,在请求中上传文件,比如上传图片

mvc 无法上传大文件 提示超过长度

SpringMvc文件上传

SpringMVC实现文件上传