需求
模仿新增库存的功能,前端上传excel文件(.xlsx)传入后端实现批量增加。
依赖
1 | <!-- adding support for multipart file upload functionality to servlets and web applications--> |
这里我之前犯了一个错误,我在导入1.3.3版本commons-fileupload的同时,还导入了2.4版本commons-io的依赖,最后启动项目的时候会有冲突,原因是commons-fileupload中已经包含有了commons-io且版本不同,故产生冲突。
前端
1 | <form action="${pageContext.request.contextPath}/book/batchAdd" method="post" enctype="multipart/form-data"> |
enctype就是encodetype就是编码类型的意思。
multipart/form-data是指表单数据有多部分构成,既有文本数据,又有文件等二进制数据的意思。
需要注意的是:默认情况下,enctype的值是application/x-www-form-urlencoded,不能用于文件上传,只有使用了multipart/form-data,才能完整的传递文件数据。
application/x-www-form-urlencoded不是不能上传文件,是只能上传文本格式的文件,multipart/form-data是将文件以二进制的形式上传,这样可以实现多种类型的文件上传。
Controller
1 | @RequestMapping("/batchAdd") |