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

阅读更多
使用commons-fileupload与commons-io进行文件上传

第一步:相关组件的下载
1、 commons-fileupload下载: http://commons.apache.org/fileupload/download_fileupload.cgi
2、 commons-io下载: http://commons.apache.org/io/download_io.cgi

第二步:解压到相应的位置
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
    


    
    
File:

你可能感兴趣的:(java,eclipse,jsp,文件上传)