分享

Struts2上传文件示例

 Blex 2011-04-27
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./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./xml/ns/j2ee"
    xmlns:xsi
="http://www./2001/XMLSchema-instance"
    xsi:schemaLocation
="http://java./xml/ns/j2ee http://java./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>





    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多