使用commons-fileupload与commons-io进行文件上传

[b][align=center]使用commons-fileupload与commons-io进行文件上传[/align][/b]
第一步:相关组件的下载
1、 commons-fileupload下载:[url]http://commons.apache.org/fileupload/download_fileupload.cgi[/url]
2、 commons-io下载:[url]http://commons.apache.org/io/download_io.cgi[/url]

第二步:解压到相应的位置
1、 commons-fileupload的目录:
F:\Program Files\commons-fileupload-1.2.2\lib\commons-fileupload-1.2.2.jar
2、 commons-io的目录:
F:\Program Files\commons-io-2.4\commons-io-2.4.jar
第三步:在自己的项目下引入相关的jar包
WEB-INF――lib目录下引入上面的两个包
第四步:编写文件处理的jsp程序
<%@ page import="org.apache.commons.fileupload.*"%>
<%@ page import="org.apache.commons.fileupload.servlet.*"%>
<%@ page import="org.apache.commons.fileupload.disk.*"%>
<%@ page import="java.util.*"%>
<%@ page import="java.io.*"%>

<%
String uploadPath = "D:\\eclipse_java_ Programs\\Shopping\\WebContent\\images\\product";
//检查输入请求是否为multipart表单数据。
boolean isMultipart = ServletFileUpload.isMultipartContent(request);

if(isMultipart==true){
try{
//为该请求创建一个DiskFileItemFactory对象,通过它来解析请求。执行解析后,所有的表单项目都保存在一个List中。
FileItemFactory factory = new DiskFileItemFactory();

ServletFileUpload upload = new ServletFileUpload(factory);
List items = upload.parseRequest(request);//得到所有的文件
Iterator itr = items.iterator();
int id = -1;
while(itr.hasNext()){//依次处理每个文件
FileItem item = (FileItem)itr.next();
//先对非文件类型的内容进行处理
if(item.isFormField()) {
//getFieldName()方法获得非文件类型内容的属性名称
if(item.getFieldName().equals("id")) {
//getString()方法获得其相应的属性值
id = Integer.parseInt(item.getString());
}
}

if(!item.isFormField()) {
String fileName = item.getName();//获得文件名,包括路径
if(fileName != null){
File fullFile = new File(id + ".jpg");
File savedFile = new File(uploadPath, fullFile.getName());
item.write(savedFile);
}
}
}
out.print("upload succeed");
}
catch(Exception e){
e.printStackTrace();
}
}
else{
out.println("the enctype must be multipart/form-data");
}
%>

第五步:文件上传的界面



File upload




enctype="multipart/form-data">









File:





你可能感兴趣的:(项目应用)