我是一名初学jsp菜鸟,今天就把自己所写的jsp上传文件的代码给大家分享一下,希望和大家多多交流,互相学习。望指教!
一、单纯的上传文件
1 <% 2 request.setCharacterEncoding("utf-8"); 3 String uploadFileName=""; //上传的文件名 4 String fieldName=""; //表单字段元素的name属性值 5 //请求信息中的内容是否是multipart类型 6 boolean isMultipart=ServletFileUpload.isMultipartContent(request); 7 //上传文件的存储路径(服务器文件系统上的绝对文件路径) 8 String uploadFilePath=request.getSession().getServletContext().getRealPath("upload/"); 9 if(isMultipart){ 10 FileItemFactory factory=new DiskFileItemFactory(); 11 ServletFileUpload upload=new ServletFileUpload(factory); 12 try{ 13 //解析form表单中所有文件 14 List<FileItem> items=upload.parseRequest(request); 15 Iterator<FileItem> iter=items.iterator(); 16 while(iter.hasNext()){ //依次处理每个文件 17 FileItem item=(FileItem)iter.next(); 18 if(item.isFormField()){ //普通表单字段 19 fieldName=item.getFieldName(); //表单字段的name属性值 20 if("user".equals(fieldName)){ 21 //输出表单字段的值 22 out.print(item.getString("utf-8")+"上传了文件<br/>"); 23 } 24 }else{ //文件表单字段 25 String fileName=item.getName(); 26 if(fileName!=null&&!"".equals(fileName)){ 27 File fullFile=new File(item.getName()); 28 File saveFile=new File(uploadFilePath,fullFile.getName()); 29 item.write(saveFile); 30 uploadFileName=fullFile.getName(); 31 out.print("上传成功后的文件名是:"+uploadFileName); 32 } 33 } 34 } 35 }catch(Exception e){ 36 e.printStackTrace(); 37 } 38 } 39 %>
二、上传指定格式的文件
<% request.setCharacterEncoding("utf-8"); String uploadFileName=""; //上传的文件名 String fieldName=""; //表单字段元素的name属性值 //请求信息中的内容是否是multipart类型 boolean isMultipart=ServletFileUpload.isMultipartContent(request); //上传文件的存储路径(服务器文件系统上的绝对文件路径) String uploadFilePath=request.getSession().getServletContext().getRealPath("upload/"); if(isMultipart){ FileItemFactory factory=new DiskFileItemFactory(); ServletFileUpload upload=new ServletFileUpload(factory); try{ //解析form表单中所有文件 List<FileItem> items=upload.parseRequest(request); Iterator<FileItem> iter=items.iterator(); while(iter.hasNext()){ //依次处理每个文件 FileItem item=(FileItem)iter.next(); if(item.isFormField()){ //普通表单字段 fieldName=item.getFieldName(); //表单字段的name属性值 if("user".equals(fieldName)){ //输出表单字段的值 out.print(item.getString("utf-8")+"上传了文件<br/>"); } }else{ //文件表单字段 String fileName=item.getName(); //通过Arrays类的asList()方法创建固定长度的集合 List<String> fileType=Arrays.asList("gif","bmp","jpg"); String ext=fileName.substring(fileName.lastIndexOf(".")+1); if(!fileType.contains(ext)){//判断文件类型是否在允许的范围类 out.print("上传失败,文件类型只能是gif、bmp、jpg"); }else{ if(fileName!=null&&!"".equals(fileName)){ File fullFile=new File(item.getName()); File saveFile=new File(uploadFilePath,fullFile.getName()); item.write(saveFile); uploadFileName=fullFile.getName(); out.print("上传成功后的文件名是:"+uploadFileName); } } } } }catch(Exception e){ e.printStackTrace(); } } %>
三、上传指定格式的文件并限制文件大小
<% request.setCharacterEncoding("utf-8"); String uploadFileName=""; //上传的文件名 String fieldName=""; //表单字段元素的name属性值 //请求信息中的内容是否是multipart类型 boolean isMultipart=ServletFileUpload.isMultipartContent(request); //上传文件的存储路径(服务器文件系统上的绝对文件路径) String uploadFilePath=request.getSession().getServletContext().getRealPath("upload/"); //创建临时文件目录路径 File tempPatchFile=new File("d:/temp/buffer/"); if(!tempPatchFile.exists()){ tempPatchFile.mkdirs();//创建指定的目录,包括所有必须但不存在的父目录 } if(isMultipart){ DiskFileItemFactory factory=new DiskFileItemFactory(); //设置缓冲区大小4kb factory.setSizeThreshold(4096); //设置上传文件用到临时文件存放路径 factory.setRepository(tempPatchFile); ServletFileUpload upload=new ServletFileUpload(factory); //设置一个完整请求的最大允许大小 upload.setSizeMax(1024*1200); try{ //解析form表单中所有文件 List<FileItem> items=upload.parseRequest(request); Iterator<FileItem> iter=items.iterator(); while(iter.hasNext()){ //依次处理每个文件 FileItem item=(FileItem)iter.next(); if(item.isFormField()){ //普通表单字段 fieldName=item.getFieldName(); //表单字段的name属性值 if("user".equals(fieldName)){ //输出表单字段的值 out.print(item.getString("utf-8")+"上传了文件<br/>"); } }else{ //文件表单字段 String fileName=item.getName(); //通过Arrays类的asList()方法创建固定长度的集合 List<String> fileType=Arrays.asList("gif","bmp","jpg"); String ext=fileName.substring(fileName.lastIndexOf(".")+1); if(!fileType.contains(ext)){//判断文件类型是否在允许的范围类 out.print("上传失败,文件类型只能是gif、bmp、jpg"); }else{ if(fileName!=null&&!"".equals(fileName)){ File fullFile=new File(item.getName()); File saveFile=new File(uploadFilePath,fullFile.getName()); item.write(saveFile); uploadFileName=fullFile.getName(); out.print("上传成功后的文件名是:"+uploadFileName+",文件大小是:"+item.getSize()+"bytes!"); } } } } }catch(FileUploadBase.SizeLimitExceededException ex){ out.print("上传失败,文件太大,全部文件的最大限制是:"+upload.getSizeMax()+"bytes!"); }catch(Exception e){ e.printStackTrace(); } } %>