由于工作需要,需要做一个excel导入的功能,这就需要上传excel文件到服务器,服务器做逻辑判断此文件是否是excel文件,接着利用poi的api就可以将内容转化为利用jdbc插入到数据库,达到批量数据导入的功能。
废话不多说,这其中上传文件有两种实现方式,一种是直接接到输入流,解析这个输入流,将里面的报文数据剔除,将剩下的文件写入到文件流,放到服务器上,这个是很早之前的解决思路,我们已经很少使用了,它不停的在操作数组,但是网上研究这个输入流的文章不多,写下来,没准对有兴趣的童鞋来说也是一件好事。二是我们采取的是apache的旗下一款上传组件,利用两个jar包,即可解决所有上传问题,还能够表单文件混合提交,多文件上传等,这里都将做说明,除此之外,我还从网上寻找了我认为对对此有兴趣的童鞋感兴趣的别人的优秀文章,希望大家能取其精华。
1,解析报文
所谓报文,就是指你的浏览器上传文件的时候,要把文件进行封装,此时如果你将输入流,在servlet里输出的话,里面会在输入流最前面加入文件标示信息,比如
------WebKitFormBoundaryoTPsEUl96q3GhQ0o
Content-Disposition: form-data; name="name"
------WebKitFormBoundaryoTPsEUl96q3GhQ0o
Content-Disposition: form-data; name="file2"; filename="text.txt"
Content-Type: text/plain
------WebKitFormBoundaryoTPsEUl96q3GhQ0o--
这些信息,就是所谓的输入流里读出来的,采用如下代码