《struts2权威指南》学习笔记之struts2多文件上传--使用数组方式

上传页面:

 

<% ... @ page language="java" contentType="text/html; charset=GBK" %>
<% ... @taglib prefix="s" uri="/struts-tags" %>
<% ... @ page isELIgnored="false"  %>
<% ... @ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"  %>


< head >

< meta  http-equiv ="Content-Type"  content ="text/html; charset=GBK"   />
< title ></ title >
</ head >
< body >
< s:fielderror />
< form  action ="upload.action"  method ="post"  enctype ="multipart/form-data" >
      
< input  type ="text"  name ="title"   />< br >
      
< input  type ="file"  name ="upload"   />< br >
      
< input  type ="file"  name ="upload"   />< br >
      
< input  type ="file"  name ="upload"   />< br >
    
< input  value ="upload"  type ="submit"   />
</ form >
</ body >
</ html >

 上传Action

 

package  lee;

import  com.opensymphony.xwork2.Action;
import  com.opensymphony.xwork2.ActionContext;

import  org.apache.struts2.ServletActionContext;
import  java.io. * ;

import  com.opensymphony.xwork2.ActionSupport;

/** */ /**
 * 
@author  yeeku.H.lee [email protected]
 * 
@version  1.0
 * <br>Copyright (C), 2005-2008, yeeku.H.Lee
 * <br>This program is protected by copyright laws.
 * <br>Program Name:
 * <br>Date: 
 
*/


public   class  UploadAction  extends  ActionSupport
... {
    
private String title;
    
private File[] upload;
    
private String[] uploadContentType;
    
private String[] uploadFileName;


    
//接受依赖注入的属性
    private String savePath;
    
//接受依赖注入的方法
    public void setSavePath(String value)
    
...{
        
this.savePath = value;
    }


    
private String getSavePath() throws Exception 
    
...{
        
return ServletActionContext.getRequest().getRealPath(savePath);
    }

    
    
public void setTitle(String title) ...{
        
this.title = title; 
    }


    
    
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 String getTitle() ...{
        
return title;
    }


    @Override
    
public String execute() throws Exception
    
...{
        System.out.println(
"开始上传单个文件-----------------------");
        System.out.println(getSavePath());
        System.out.println(
"==========" + getUploadFileName());
        System.out.println(
"==========" + getUploadContentType());
        System.out.println(
"==========" + getUpload());
        
        File[] files
=this.getUpload();
        
for(int i=0;i<files.length;i++)...{
            
//以服务器的文件保存地址和原文件名建立上传文件输出流
            FileOutputStream fos = new FileOutputStream(getSavePath() + "\" + getUploadFileName()[i]);
            FileInputStream fis 
= new FileInputStream(files[i]);
            
byte[] buffer = new byte[1024];
            
int len = 0;
            
while ((len = fis.read(buffer)) > 0)
            
...{
                fos.write(buffer , 
0 , len);
            }

        }

        
return SUCCESS;
    }

    



}

 

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.custom.i18n.resources"  value ="globalMessages" />
    
< constant  name ="struts.i18n.encoding"  value ="GBK" />

    
< package  name ="lee"  extends ="struts-default" >
    
        
< action  name ="upload"  class ="lee.UploadAction" >
          
< interceptor-ref  name ="fileUpload" >  
                
< param  name ="allowedTypes" > image/bmp,image/png,image/gif,image/jpeg,image/jpg </ param >  
                
< param  name ="maximumSize" > 2000 </ param >  
            
</ interceptor-ref >  
            
< interceptor-ref  name ="defaultStack" />  
            
< param  name ="savePath" > /upload </ param >
            
< result > /succ.jsp </ result >     
            
< result  name ="input" > /upload.jsp </ result >     
        
</ action >         
    
</ package >
</ struts >     

 

结果显示页面:

 

<%

你可能感兴趣的:(apache,c,xml,jsp,struts)