之前自己用jsp跟Servlet写了一个线上点餐系统,后台管理页面中需要上传菜品照片,了解到文件上传这个知识点,这里做个小总结吧。
1)导入commons-fileupload、commons-io jar包
这里我使用了Apache的开源组件commons-fileupload,所以在编写代码之前,需要导入commons-fileupload jar包,以及导入commons-iojar包作为支持。
2)编写jsp表单
① 实现文件上传的表单标签,必须加上enctype="multipart/form-data"这个属性。但是加上这个属性之后,在Servlet中就无法使用request的getParameter这个方法了,获取到的参数将会是null。所以这时候第一步导入的包就派上用场了。
② 文件上传的标签是:<input type="file" name="upload">
3)在Servlet中获取表单数据和文件
①创建Servlet文件上传对象ServletFileUpload
②对request中的数据进行转义,得到一个FileItem的集合对象。
③遍历这个集合,可以得到每一个FileItem对象。
对于FileItem对象,有如下几个常用的方法
总结来说,使用文件上传的表单后,Servlet中的获取参数的方法失效,从而引入组件快速开发。组件中的关键对象即为FileItem,表单中的每一条数据都会封装成一个FileItem,操作FileItem对象即可获取到表单提交的相关数据
网友评论