欢迎查看Java开发之上帝之眼系列教程,如果您正在为Java后端庞大的体系所困扰,如果您正在为各种繁出不穷的技术和各种框架所迷茫,那么本系列文章将带您窥探Java庞大的体系。本系列教程希望您能站在上帝的角度去观察(了解)Java体系。使Java的各种后端技术在你心中模块化;让你在工作中能将Java各个技术了然于心;能够即插即用。本章我们来一起了解Spring的文件上传全解析。

首先对于Spring的文件上传,我们仅仅需要关注三点

  1. Spring需要具备解析Multipart能力
  2. 前端需要文件转换为Multipart请求
  3. 在Controller中接收Multipart请求

在Spring项目中配置Multipart解析器

  • StandardServletMultipartResolver
  • CommonsMultipartResolver

在JavaConfig中配置StandardServletMultipartResolver

 @Bean
public MultipartResolver multipartResolver() throws IOException {
return new StandardServletMultipartResolver();
}
@Override
protected void customizeRegistration(ServletRegistration.Dynamic registration) {
registration.setMultipartConfig(new MultipartConfigElement("D://"));
}

在JavaConfig配置CommonsMultipartResolver

  @Bean
public MultipartResolver multipartResolver() throws IOException {
CommonsMultipartResolver commonsMultipartResolver = new CommonsMultipartResolver();
commonsMultipartResolver.setUploadTempDir(new FileSystemResource("/temp"));
return commonsMultipartResolver;
}

在XML配置CommonsMultipartResolver

    <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<property name="maxUploadSize" value="104857600"/>
<property name="maxInMemorySize" value="4096"/>
<property name="defaultEncoding" value="UTF-8"></property>
</bean>

在前端传递multipart请求

<form action="/fileUpload" method="post" enctype="multipart/form-data">
<input type="file" name="file">
<input type="submit" value="submit">
</form>

在Controller方法参数中接收multipart请求

  • @RequestPart("file") byte[] file
  • @RequestPart("file") Part file
  • MultipartFile file
    @RequestMapping("/fileUpload")
public void FileUpload(@RequestPart("file") byte[] file) {
...
}
    @RequestMapping("/fileUpload")
public void FileUpload(@RequestPart("file") Part file) throws IOException {
file.write("D://test.jpg");
}
    @RequestMapping("/fileUpload")
public void FileUpload(MultipartFile file) throws IOException {
String originalFilename = file.getOriginalFilename();
file.transferTo(new File("D://" + originalFilename));
}

Java开发之上帝之眼系列教程其他文章

勘误&感谢

  本系列文章资料来源很多出自于互联网和在下本身的见解,受限于个人技术能力水平和其他相关知识的限制,相关见解错误或者资料引用错误请各位帮助留言校正!引用资料多来自于互联网,在下在引用前会遵循各位前辈或者博主的引用说明表示感谢,但互联网资料多是转发再转发或存在遗漏请原作者内信联系指正。

最新文章

  1. javascript表单的Ajax 提交插件的使用
  2. DevExpress免费公开课,讲解即将发布的16.2新版功能
  3. OD调试17
  4. NPOI支持excel2003和excel2007
  5. MJExtension使用
  6. Linux下U盘的挂载和文件的拷贝
  7. python pdb调试
  8. jQuery.serializeArray() 函数详解
  9. css系列教程--css文件的创建
  10. Bmob 之 简单使用
  11. 3390: [Usaco2004 Dec]Bad Cowtractors牛的报复
  12. Hadoop常用命令集合
  13. Nand Flash驱动(实现初始化以及读操作)
  14. sqoop使用的问题
  15. [shiro学习笔记]第三节 使用myeclipse导入apache shiro中的QuikStart example例子
  16. ubuntu如何安装chromium浏览器并设置成中文版
  17. NoHttp封装--07 自定义异步任务框架
  18. .NET 常用ORM之Nbear
  19. AWS之搭建深度学习主机
  20. 第二章:冠词(Les articles)

热门文章

  1. latex之转置符号
  2. ioctl参数cmd=2错误
  3. Win10開始菜单打不开
  4. MongoDB C#驱动中Query几个方法
  5. Java输入输出流(2)
  6. day08&lt;面向对象+&gt;
  7. POJ 1426 Find The Multiple(背包方案统计)
  8. Access数据操作-02
  9. Spring中通过构造方法传参数
  10. RecyclerView的通用适配器,和滚动时不加载图片的封装