Struts文件上傳功能的實現

工具: myeclipse 6.5

1.
新建項目 StrutsFileUpload

導入 struts1.x 的屬性包:

struts-config.xml 裏面新建一個 action form fileupload

struts-config.xml


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

<struts-config>
<form-beans >
    <form-bean name="fileuploadForm" type="com.shiryu.form.FileuploadForm" />
</form-beans>


<global-exceptions />
<global-forwards />
<action-mappings >
    <action
      attribute="fileuploadForm"
      input="/fileupload.jsp"
      name="fileuploadForm"
      path="/fileupload"
      scope="request"
      type="com.shiryu.action.FileuploadAction">
      <forward name="index" path="/index.jsp" />
    </action>

  
</action-mappings>

<message-resources parameter="com.shiryu.ApplicationResources" />
</struts-config>

2.com.shiryu.action
包下的 FileuploadAction.java

package com.shiryu.action;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.upload.FormFile;

import com.shiryu.form.FileuploadForm;

public class FileuploadAction extends Action {
   
    public ActionForward execute(ActionMapping mapping, ActionForm form,
            HttpServletRequest request, HttpServletResponse response) {

        FileuploadForm fileuploadForm = (FileuploadForm) form;

        FormFile upfile=fileuploadForm.getFilecontext();

        //
文件上傳功能實現
        try {

            byte[] buf=upfile.getFileData();

                OutputStream out=new FileOutputStream(new File("d://"+fileuploadForm.getFilecontext().toString()));

                out.write(buf);

                out.close();
               
        } catch (FileNotFoundException e) {
                e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }


        return mapping.findForward("index");
    }
}

3.com.shiryu.form
包下的 FileuploadForm.java

package com.shiryu.form;

import org.apache.struts.action.ActionForm;
import org.apache.struts.upload.FormFile;


public class FileuploadForm extends ActionForm {
   
    private static final long serialVersionUID = 5572854553277148095L;

    
// 類型是 FormFile
    private FormFile filecontext;

    private String filename;

    public FormFile getFilecontext() {
        return filecontext;
    }

    public String getFilename() {
        return filename;
    }


    public void setFilename(String filename) {
        this.filename = filename;
    }

    public void setFilecontext(FormFile filecontext) {
        this.filecontext = filecontext;
    }
}


fileUpload.jsp

<%@ page language="java" pageEncoding="UTF-8"%>
<%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean"%>
<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html"%>

<html>
    <head>
        <title>JSP for FileuploadForm</title>
    </head>
    <body>

       
<html:form action="/fileupload" enctype="multipart/form-data">

            filename : <html:text property="filename"/><html:errors property="filename"/><br/>

            filecontext : <html:file property="filecontext"/><html:errors property="filecontext"/><br/>

            <html:submit/><html:cancel/>

        </html:form>

    </body>
</html>

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章