commons-fileupload上传示例

此上传示例是从项目中提取出来的
是一个图片上传的示例
功能包括:
   1.上传文件类型检查
   2.上传文件大小控制
   3.解决中文文件名乱码

引入的.jar文件:
commons-fileupload-1.2.1.jar
commons-io-1.2.jar
http://kjah.iteye.com


upload.html





图片上传



背景图:



upload_commons.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8" import="org.apache.commons.fileupload.*,org.apache.commons.fileupload.disk.*,java.io.*,java.util.*"
%>
<%
		String realPath=session.getServletContext().getRealPath("/");
		String uploadPath=realPath+"\\upload\\";
		String tempPath=realPath+"\\upload_temp\\";
		DiskFileUpload fu = new DiskFileUpload();
        fu.setSizeMax(4194304); // 设置最大文件尺寸,这里是4MB
        fu.setSizeThreshold(4096); // 设置缓冲区大小,这里是4kb
        fu.setRepositoryPath(tempPath); // 设置临时目录
        fu.setHeaderEncoding("UTF-8");//设置字符集 防止中文文件名乱码
        List fileItems = fu.parseRequest(request); //得到提交的数据
        Iterator i = fileItems.iterator();
        
        String allowExts=".jpg.jpeg.gif.png";
        FileItem imgFile=null;
      try{
        while(i.hasNext()) {
            FileItem fi = (FileItem)i.next();
            String fileName = fi.getName();// 获得文件名,其中包括用户提交的路径即html file的value
            if(fileName!=null) {
           		String fileExt = fileName.substring(fileName.lastIndexOf("."));
           		if(allowExts.indexOf(fileExt.toLowerCase())==-1){
           			out.println("上传失败!此文件类型不允许上传");
           			return;
           		}
            	if(fi.getFieldName().equals("bg_img")){//多文件的话判断html file的name
            		imgFile=fi;
            	}
            }
		}
		if(imgFile!=null){
			String imgFileName=imgFile.getName();
			imgFileName=imgFileName.substring(imgFileName.lastIndexOf("\\")+1);
			File fImg=new File(uploadPath+imgFileName);
			if(fImg.exists()){
				out.println("上传失败!文件已存在,请重命名后上传");
			}else{
				imgFile.write(fImg);
				out.println("文件上传成功!");
			}
		}else{
			out.println("上传失败!文件丢失");
		}
	}catch(FileUploadBase.SizeLimitExceededException e){
		out.println("上传失败!文件大小超出,最大上传限制4M");
	}
%>

 

你可能感兴趣的:(Java)