Spring的文件上传功能upload
Posted Montauk
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring的文件上传功能upload相关的知识,希望对你有一定的参考价值。
用全部Annotation配置方式来传文件, 首先也是修改配置类:
@Override public void addViewControllers(ViewControllerRegistry registry) { registry.addViewController("/index").setViewName("/index"); registry.addViewController("/hello").setViewName("/index"); registry.addViewController("/fileupload").setViewName("/upload");
//增加一个fileupload的重定向, 指向一个upload.jsp文件, 里面就是两个input, 具体下面贴 } @Bean
//这个Multipart接应者(这翻译也是没sei了), 仅仅设置了一下最大文件尺寸, 如果超过这个尺寸就会报错,
//具体的报错还能修改Exception的那个interceptor来定义跟传msg, 重定向, 试过, 挺好用 public MultipartResolver multipartResolver() { CommonsMultipartResolver multipartResolver = new CommonsMultipartResolver(); multipartResolver.setMaxUploadSize(1000000); return multipartResolver; }
上传测试用的jsp文件简单贴一下:
... ... <div class="upload"> <form action="upload" enctype="multipart/form-data" method="post"> <input type="file" name="file" /><br> <input type="submit" value="上传" /><br> </form> </div> ... ...
然后你不是点了上面的submit么, 执行的action是"upload", 这肯定是对应一个controller的, 下面就是:
@Controller public class UploadController { @RequestMapping(value = "upload", method = RequestMethod.POST) @ResponseBody public String upload(MultipartFile file) { try { FileUtils.writeByteArrayToFile(new File("c:/upload/" + file.getOriginalFilename()), file.getBytes()); return "ok"; } catch (IOException e) { e.printStackTrace(); return "wrong"; } } }
Linux的精(bian)英(tai)们, 修改一下这里的目录名即可.
就修改配置, 然后做一个controller, 测试建一个jsp, 就搞定了, 简单地要死吧.
哦对了, pom里面加上common-io的包:
<!-- 文件上传 --> <dependency> <groupId>commons-fileupload</groupId> <artifactId>commons-fileupload</artifactId> <version>1.3.1</version> </dependency> <!-- 可简化I/O操作 --> <dependency> <groupId>commons-io</groupId> <artifactId>commons-io</artifactId> <version>2.3</version> </dependency>
注明出处, 全部内容来自"Spring Boot实战"一书, 我已经购买了kindle的正版(这是个坏习惯, 因为csdn全他妈有, 从源代码到原书pdf, 连淘宝都省了), 才不到10块钱, 推荐大家都买正版, 打击盗版...毕竟人家写书是费了时间的, 如果没人为之付费, 谁他妈还做知识传播?谁以后还敢写书, 对吧?
以上是关于Spring的文件上传功能upload的主要内容,如果未能解决你的问题,请参考以下文章
关于PHP上传文件时配置 php.ini 中的 upload_tmp_dir
Spring Boot 使用 ServletFileUpload上传文件失败,upload.parseRequest(request)为空
尝试使用 ng-file-upload 在 Spring 中上传许多文件时出现空 List<MultipartFile>