分享

使用webwork-common?fileupload上载文件

 smoking_boy 2005-08-15
使用webwork-common fileupload上载文件

一、软件环境
1。webwork2.1.7
2。apache common fileupload1.0

二、编写input.jsp
<html>
  <head><title>File Upload</title>    
</head>
  <body>

  <form action="fileUpload.action" enctype="multipart/form-data" method="POST">
<p>   <input type="text" name="fileFileName"/> <input type="file" name="file"/><br>
  <p>   <input type="text" name="hello"/> <input type="file" name="files"/><br>
    <p>   <input type="text" name="hello"/> <input type="file" name="files"/><br>
      <p>   <input type="text" name="hello"/> <input type="file" name="files"/><br>
<p>    <input type="submit" name="上载"/>
  </form>
  </body>
</html>

三、编写action
import java.io.*;
import java.util.*;

import com.opensymphony.xwork.*;

public class FileUploadAction implements Action {
    File file;
    String fileContentType;
    String fileFileName;
    File[] files;
    String[] filesContentType;
    String[] filesFileName;
    private boolean debug=true;

    public String execute() throws Exception {
        ActionContext context=ActionContext.getContext();
        Map map=context.getParameters();
        context.getValueStack();
        if(filesFileName!=null)
        {
            for (int i = 0; i < filesFileName.length; i++) {
                String srcName = filesFileName[i];
                File target = new File(srcName);
                if (target.exists()) {
                    target.delete();
                }
                files[i].renameTo(target);
            }
        }
      
        return SUCCESS;
    }

    public String doDefault() throws Exception {
        return INPUT;
    }

    public void setFile(File file) {
        this.file = file;
    }

    public void setFileContentType(String fileContentType) {
        this.fileContentType = fileContentType;
    }

    public void setFiles(File[] files) {
        this.files = files;
        if(files==null)
        {
            return ;
        }
        if(debug)
        {
            for (int i = 0; i < files.length; i++) {
                System.out.println(files[i].getName()) ;
            }
        }
    }

    public void setFilesContentType(String[] filesContentType) {
        this.filesContentType = filesContentType;
    }

    public void setFilesFileName(String[] filesFileName) {
        this.filesFileName = filesFileName;
    }

    public void setFileFileName(String fileFileName) {
        this.fileFileName = fileFileName;
    }

    public void setDebug(boolean debug) {
        this.debug = debug;
    }

    三、配置xwork.xml
    <package name="fileUpload" extends="webwork-default" namespace="/fileUpload">
    <interceptors>
    <interceptor name="fileUpload" class="com.opensymphony.webwork.interceptor.FileUploadInterceptor">
      <param name="allowedTypes">image/jpeg/jpg/bmp/txt</param>
      <param name="maximumSize">10000000</param>
    </interceptor>
    <interceptor-stack name="fileUploadStack">
         <interceptor-ref name="fileUpload"/>
         <interceptor-ref name="defaultStack"/>
       </interceptor-stack>
    </interceptors>
        <default-interceptor-ref name="fileUploadStack"/>
        <action name="fileUpload" class="org.bluebird.web.file.action.FileUploadAction">
            <result name="success">success.jsp</result>
            <result name="input">input.jsp</result>
        </action>
    </package>

    四、修改webwork.properties
    
# various values
webwork.multipart.parser=jakarta
webwork.multipart.saveDir=/tmp
webwork.multipart.maxSize=10000000

  五、总结
webwork支持common fileupload, pell,cos三种方式的文件上载,common对多文件上载支持的比较好。

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

    0条评论

    发表

    请遵守用户 评论公约