文件上传,它是将一个表单转换成一个二进制的数据流,所以不能够使用request.getParameter形式获取参数,因此需要将表单转换成二进制表单。在表单中,添加一个enctype="multipart/form-data"设置。提交方式必须用post方式。
FileItem对象的常用方法
FileItem类的常用方法:
1.isFormField():isFormField方法用于判断FileItem类对象封装的数据是一个普通文本表单字段,还是一个文件表单字段。
2.getName():getName方法用于获得文件上传字段中的文件名。
3.getFieldName():getFieldName方法用于返回表单标签name属性的值。
4.write(File file):write方法用于将FileItem对象中保存的主体内容保存到某个指定的文件中。如果FileItem对象中的主体内容是保存在某个临时文件中,该方法顺利完成后,临时文件有可能会被清除。该方法也可将普通表单字段内容写入到一个文件中,但它主要用途是将上传的文件内容保存在本地文件系统中。
5.getString():getString方法用于将FileItem对象中保存的数据流内容以一个字符串返回,它有两个重载的定义形式:
1. getString():获取表单中的值,使用缺省的字符集编码将主体内容转换成字符串。
2.getString(String encoding):里面的参数是字符编码防止乱码现象,获取表单中的值。
6. getContentType():getContentType 方法用于获得上传文件的类型,即表单字段元素描述头属性“Content-Type”的值,如“image/jpeg”。如果FileItem类对象对应的是普通表单字段,该方法将返回null。
7. isInMemory():isInMemory方法用来判断FileItem对象封装的数据内容是存储在内存中,还是存储在临时文件中,如果存储在内存中则返回true,否则返回false。
9. getInputStream():以流的形式返回上传文件的数据内容。
10.getSize():返回该上传文件的大小(以字节为单位)。