Struts2上传文件示例 【转】



源代码:Struts2Upload.rar

1.包如下:请自行下载


2.Action类

package  com.sterning;

import  java.io.File;

import  javax.servlet.ServletContext;

import  org.apache.commons.io.FileUtils;
import  org.apache.struts2.util.ServletContextAware;

import  com.opensymphony.xwork2.ActionSupport;

public   class  StrutsFileUpload  extends  ActionSupport  implements
        ServletContextAware 
{

    
private  File upload; //  实际上传文件

    
private  String uploadContentType;  //  文件的内容类型

    
private  String uploadFileName;  //  上传文件名

    
private  String fileCaption; //  上传文件时的备注

    
private  ServletContext context;

    
public  String execute()  throws  Exception  {

        
try   {
            
            String targetDirectory 
=  context.getRealPath( " /upload " );
            String targetFileName 
=  uploadFileName;
            File target 
=   new  File(targetDirectory, targetFileName);
            FileUtils.copyFile(upload, target);            
            
            setUploadFileName(target.getPath());
// 保存文件的存放路径
        }
  catch  (Exception e)  {

            addActionError(e.getMessage());

            
return  INPUT;
        }


        
return  SUCCESS;

    }


    
public  String getFileCaption()  {
        
return  fileCaption;
    }


    
public   void  setFileCaption(String fileCaption)  {
        
this .fileCaption  =  fileCaption;
    }


    
public  File getUpload()  {
        
return  upload;
    }


    
public   void  setUpload(File upload)  {
        
this .upload  =  upload;
    }


    
public  String getUploadContentType()  {
        
return  uploadContentType;
    }


    
public   void  setUploadContentType(String uploadContentType)  {
        
this .uploadContentType  =  uploadContentType;
    }


    
public  String getUploadFileName()  {
        
return  uploadFileName;
    }


    
public   void  setUploadFileName(String uploadFileName)  {
        
this .uploadFileName  =  uploadFileName;
    }


    
public   void  setServletContext(ServletContext context)  {
        
this .context  =  context;
    }


}


3.页面

上传页面:upload.jsp

<% @ page language = " java "  contentType = " text/html; charset=GB2312 " %>    
<% @ taglib prefix = " s "  uri = " /struts-tags "   %>    
< html >
    
< head >
        
< title > 文件上传示例 </ title >
        
< link  href ="<s:url value=" /css/main.css" /> " rel="stylesheet"
            type="text/css" />

    
</ head >

    
< body >

        
< s:actionerror  />
        
< s:fielderror  />
        
< s:form  action ="doUpload"  method ="POST"  enctype ="multipart/form-data" >
            
< tr >
                
< td  colspan ="2" >
                    
< h1 >
                        文件上传示例
                    
</ h1 >
                
</ td >
            
</ tr >

            
< s:file  name ="upload"  label ="上传的文件"   />
            
< s:textfield  name ="fileCaption"  label ="备注"   />
            
< s:submit  value ="上   传" />
        
</ s:form >
    
</ body >
</ html >


上传成功页面:upload_success.jsp

<% @ page language = " java "  contentType = " text/html; charset=GB2312 " %>   
<% @ taglib prefix = " s "  uri = " /struts-tags " %>
< html >
    
< head >
        
< title > 上传成功 </ title >
        
< link  href ="<s:url value=" /css/main.css" /> " rel="stylesheet"
            type="text/css" />
    
</ head >

    
< body >
        
< table  class ="wwFormTable" >
            
< tr >

                
< td  colspan ="2" >
                    
< h1 >
                        上传成功
                    
</ h1 >
                
</ td >
            
</ tr >

            
< tr >
                
< td  class ="tdLabel" >
                    
< label  for ="doUpload_upload"  class ="label" >
                        内容类型:
                    
</ label >
                
</ td >
                
< td >
                    
< s:property  value ="uploadContentType"   />
                
</ td >
            
</ tr >

            
< tr >
                
< td  class ="tdLabel" >
                    
< label  for ="doUpload_upload"  class ="label" >
                        文件路径:
                    
</ label >
                
</ td >
                
< td >
                    
< s:property  value ="uploadFileName"   />
                
</ td >
            
</ tr >


            
< tr >
                
< td  class ="tdLabel" >
                    
< label  for ="doUpload_upload"  class ="label" >
                        临时文件:
                    
</ label >
                
</ td >
                
< td >
                    
< s:property  value ="upload"   />
                
</ td >
            
</ tr >

            
< tr >
                
< td  class ="tdLabel" >
                    
< label  for ="doUpload_upload"  class ="label" >
                        备注:
                    
</ label >
                
</ td >
                
< td >
                    
< s:property  value ="fileCaption"   />
                
</ td >
            
</ tr >


        
</ table >

    
</ body >
</ html >


4.struts.xml

<? xml version="1.0" encoding="UTF-8"  ?>
<! DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
    "http://struts.apache.org/dtds/struts-2.0.dtd"
>

< struts >
    
< constant  name ="struts.devMode"  value ="true"   />
    
< constant  name ="struts.i18n.encoding"  value ="GB2312"   />
 
    
< package  name ="NG"  namespace ="/"  extends ="struts-default" >
        
< action  name ="showUpload" >
            
< result > /upload.jsp </ result >
        
</ action >
        
        
< action  name ="doUpload"  class ="com.sterning.StrutsFileUpload" >
            
< result  name ="input" > /upload.jsp </ result >
            
< result > /upload_success.jsp </ result >
        
</ action >
    
</ package >

</ struts >



5.web.xml

<? xml version="1.0" encoding="UTF-8" ?>
< web-app  id ="WebApp_ID"  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" >

    
< display-name > customization </ display-name >

    
< filter >
        
< filter-name > struts-cleanup </ filter-name >
        
< filter-class >
            org.apache.struts2.dispatcher.ActionContextCleanUp
        
</ filter-class >
    
</ filter >   


    
< filter >
        
< filter-name > struts2 </ filter-name >
        
< filter-class >
            org.apache.struts2.dispatcher.FilterDispatcher
        
</ filter-class >
    
</ filter >


    
< filter-mapping >
        
< filter-name > struts-cleanup </ filter-name >
        
< url-pattern > /* </ url-pattern >
    
</ filter-mapping >  


    
< filter-mapping >
        
< filter-name > struts2 </ filter-name >
        
< url-pattern > /* </ url-pattern >
    
</ filter-mapping >

</ web-app >




  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值