在JSP环境中利用Commons-fileupload组件实现文件上传

一.在JSP环境中利用Commons-fileupload组件实现文件上传
   1.页面upload.jsp清单如下:

?
<%@ page language= "java"  import = "java.util.*"  pageEncoding= "UTF-8" %> 
   
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
<html> 
   <head> 
     <title>The FileUpload Demo</title> 
   </head> 
     
   <body> 
     <form action= "UploadFile"  method= "post"  enctype= "multipart/form-data"
         <p><input type= "text"  name= "fileinfo"  value= "" >文件介绍</p> 
         <p><input type= "file"  name= "myfile"  value= "浏览文件" ></p> 
         <p><input type= "submit"  value= "上 传" ></p> 
     </form> 
   </body> 
</html> 

  注意:在上传表单中,既有普通文本域也有文件上传域

2.FileUplaodServlet.java清单如下:

?
package  org.chris.fileupload; 
   
import  java.io.File; 
import  java.io.IOException; 
import  java.util.Iterator; 
import  java.util.List; 
   
import  javax.servlet.ServletException; 
import  javax.servlet.http.*; 
   
import  org.apache.commons.fileupload.FileItem; 
import  org.apache.commons.fileupload.FileItemFactory; 
import  org.apache.commons.fileupload.disk.DiskFileItemFactory; 
import  org.apache.commons.fileupload.servlet.ServletFileUpload; 
   
public  class  FileUplaodServlet extends  HttpServlet { 
   
     protected  void  doGet(HttpServletRequest request, HttpServletResponse response) throws  ServletException, IOException { 
         doPost(request, response); 
    
   
     protected  void  doPost(HttpServletRequest request, HttpServletResponse response) throws  ServletException, IOException { 
           
         request.setCharacterEncoding( "UTF-8" ); 
           
         //文件的上传部分 
         boolean  isMultipart = ServletFileUpload.isMultipartContent(request); 
           
         if (isMultipart) 
        
             try 
                 FileItemFactory factory = new  DiskFileItemFactory(); 
                 ServletFileUpload fileload = new  ServletFileUpload(factory); 
                   
//               设置最大文件尺寸,这里是4MB     
                 fileload.setSizeMax( 4194304 ); 
                 List<FileItem> files = fileload.parseRequest(request); 
                 Iterator<FileItem> iterator = files.iterator();    
                 while (iterator.hasNext()) 
                
                     FileItem item = iterator.next(); 
                     if (item.isFormField()) 
                    
                         String name = item.getFieldName(); 
                         String value = item.getString(); 
                         System.out.println( "表单域名为: "  + name + "值为: "  + value); 
                     } else 
                    
                         //获得获得文件名,此文件名包括路径 
                         String filename = item.getName(); 
                         if (filename != null
                        
                             File file = new  File(filename); 
                             //如果此文件存在 
                             if (file.exists()){ 
                                 File filetoserver = new  File( "d:\\upload\\" ,file.getName()); 
                                 item.write(filetoserver); 
                                 System.out.println( "文件 "  + filetoserver.getName() + " 上传成功!!" ); 
                            
                        
                    
                
             } catch  (Exception e) { 
                 System.out.println(e.getStackTrace()); 
            
        
    

  3.web.xml清单如下:

复制代码
Java代码  
<?xml version="1.0" encoding="UTF-8"?>  
<web-app version="2.4"   
    xmlns="http://java.sun.com/xml/ns/j2ee"   
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"   
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee   
    http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">  
      
    <servlet>  
        <servlet-name>UploadFileServlet</servlet-name>  
        <servlet-class>  
            org.chris.fileupload.FileUplaodServlet  
        </servlet-class>  
    </servlet>  
  
    <servlet-mapping>  
        <servlet-name>UploadFileServlet</servlet-name>  
        <url-pattern>/UploadFile</url-pattern>  
    </servlet-mapping>  
      
    <welcome-file-list>  
        <welcome-file>/Index.jsp</welcome-file>  
    </welcome-file-list>  
      
</web-app>  
复制代码
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值