Common FileUpload组件的简单使用
FileUpload用于实现Web端的文件上传。其主页是:http://jakarta.apache.org/commons/fileupload/
使用方法:
1、将jar包放到lib目录下
2、创建HTML页面
3、创建服务器端组件
4、配置web.xml文件
HTML页面:
<form action="fileupload" method="post"
enctype="multipart/form-data" name="form1">
<input type="file" name="file">
<input type="submit" name="Submit" value="upload">
</form>
创建服务器组件:
import java.io.*;
import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*;
import org.apache.commons.fileupload.*;
public class Upload extends HttpServlet {
String uploadPath = "C:\\upload\\"; // 用于存放上传文件的目录
String tempPath = "C:\\upload\\tmp\\"; // 用于存放临时文件的目录
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException
{
try {
DiskFileUpload fu = new DiskFileUpload();
fu.setSizeMax(4194304); // 设置最大文件尺寸,这里是4MB
fu.setSizeThreshold(4096); // 设置缓冲区大小,这里是4kb
fu.setRepositoryPath(tempPath); // 设置临时目录
List fileItems = fu.parseRequest(request); // 得到所有的文件:
Iterator i = fileItems.iterator();
// 依次处理每一个文件:
while(i.hasNext()) {
FileItem fi = (FileItem)i.next();
String fileName = fi.getName();// 获得文件名,这个文件名包括路径:
if(fileName!=null) {
// 在这里可以记录用户和文件信息
// 此处应该定义一个接口(CallBack),用于处理后事。
// 写入文件a.txt,你也可以从fileName中提取文件名:
fi.write(new File(uploadPath + "a.txt"));
}
}
// 跳转到上传成功提示页面
}
catch(Exception e) {
// 可以跳转出错页面
}
}
}
配置web.xml文件
<web-app>
<servlet>
<servlet-name>Upload</servlet-name>
<servlet-class>Upload</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Upload</servlet-name>
<url-pattern>/fileupload</url-pattern>
</servlet-mapping>
</web-app>
我们还可以在此基础上做进一步的封装,以便通过配置就可以使用组件。