1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > JSP Commons-FileUpload 组件实现文件上传

JSP Commons-FileUpload 组件实现文件上传

时间:2019-09-16 02:59:23

相关推荐

JSP Commons-FileUpload 组件实现文件上传

目录

1.获取Commons-FileUpload组件的步骤

2.表单的属性设置

mons-FileUpload组件的API

4.编写上传文件处理页的实现步骤

5.实现代码

1.获取Commons-FileUpload组件的步骤

下载Commons-FileUpload组件,即commons-fileupload-1.4-bin下载Commons-IO组件,即ccommons-io-2.11.0-bin.zip,该组件用于处理文件上传所依赖的I/O操作

2.表单的属性设置

<form action="upload.jsp" enctype="multipart/form-data" method="post">

注意:上传文件时form标签的method属性值必须为“post”,不能为get

2.1表单enctype属性有以下三个属性值

表单数据会编码为 "application/x-www-form-urlencoded"。就是说,在发送到服务器之前,所有字符都会进行编码(空格转换为 "+" 加号,特殊符号转换为 ASCII HEX 值)。application/x-www-form-urlencoded不是不能上传文件,是只能上传文本格式的文件,multipart/form-data是将文件以二进制的形式上传,这样可以实现多种类型的文件上传。

2.2 使用File控件选择文件

<form action="upload.jsp" enctype="multipart/form-data" method="post"><p>选择文件:<input type="file" name="nfile" /></p><P><input type="submit" value="提交" /></form>

mons-FileUpload组件的API

在使用Commons-FileUpload组件之前,首先需要在项目中添加commons-fileupload-1.4.jar和commons-io-2.4.jar 文件。添加完jar文件之后,JSP文件中还需要将Commons-FileUpload组件所使用的类库导入JSP文件中

<%@ page import="mons.fileupload.*"%><%@ page import="mons.fileupload.disk.DiskFileItemFactory" %><%@ page import="mons.fileupload.servlet.ServletFileUpload" %>

4.编写上传文件处理页的实现步骤

1.创建FileItemFactory对象

2.创建ServletFileUpload对象

3.解析form表单提交的所有表单元素数据

5.实现代码

<%@ page import="java.io.*,java.util.*"%><%@ page import="mons.fileupload.*"%><%@ page import="mons.fileupload.disk.DiskFileItemFactory" %><%@ page import="mons.fileupload.servlet.ServletFileUpload" %><%//这一句话只对文件名有效,对普通字段无效request.setCharacterEncoding("utf-8");//请求信息中的内容是否multipart类型,判断是否是一个文件上传的类型boolean isMultipart = ServletFileUpload.isMultipartContent(request);//上传文件的存储路径(服务器文件系统上的绝对文件路径)String uploadFilePath = request.getSession().getServletContext().getRealPath("upload/");if(isMultipart){//是一个上传文件的请求才用upload组件,工场对象FileItemFactory factory = new DiskFileItemFactory();//创建ServletFileUpload对象ServletFileUpload upload = new ServletFileUpload(factory);try{//关键步骤,解析form表单中所有文件,获得提交数据List<FileItem> items = upload.parseRequest(request);for(FileItem item : items){//判断数据是普通字段还是文件字段if(item.isFormField()){//普通表单字段,isFormField(),普通表单字段返回true,反之返回false//普通字段System.out.println(item.getFieldName()+": "+item.getString("UTF-8"));}else{//文件表单字段//文件字段//获取文件名String fileName = item.getName();//项目发布的路径,application.getRealPath()得到虚拟目录对应的绝对路径String uploadPath = application.getRealPath("/upload");System.out.println(uploadPath);//uploadPath父目录,fileName文件名File outFile = new File(uploadPath,fileName);//写入文件item.write(outFile);}}}catch(Exception e){e.printStackTrace();}}%>

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。