struts1文件上傳示例簡介

雖然現在在企業中已經很少使用struts1版進行開發了,但本文的主旨在於熟悉其框架中的思想,以及各個框架的一些區別。下面就struts1中文件上傳的配置步驟作一下簡要的說明。
首先,要相關的jar包,這點不管你是使用哪種框架都要做這步操作,這是沒得說的。在引用相關的資源文件後,我們就要配置一些基本的actoin,這些配置步驟在這裏就不做說明了,可參考我之前寫過的一篇博文《java中struts 框架基本配置小結》。下面我就直接說明一下,jsp頁面的配置以及後臺java代碼是如何編寫的。
1、具體的jsp代碼如下:

<form action="/testfileupload/fileupload.do" method="post" enctype="multipart/form-data">       
    <input type="file" name="formFile" id="formFile"/>
    <br/>
    <input type="submit" value="上傳">
</form>

這裏需要注意的是form標籤的enctype值必須爲”multipart/form-data”,action屬性爲對應後臺配置的action表單提交時調用。
當然我們還要在Tomcat的WebContext下創建一個文件夾,用以保存上傳的文件,本文就以upload文件夾爲例
這裏寫圖片描述
對應後臺的action處理代碼如下:

import java.io.FileOutputStream;
import java.io.InputStream;
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.ev.formbean.FileBean;

public class FileUploadAction extends Action {

    @Override
    public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request,
            HttpServletResponse response) throws Exception {
        FileBean file = (FileBean)form;
        FormFile formFile = file.getFormFile();
        InputStream in = formFile.getInputStream();
        String fileName = formFile.getFileName();
        int size = formFile.getFileSize();
        byte[] arr = new byte[size];
        in.read(arr);       
        String path = super.servlet.getServletContext().getRealPath("/upload");
        OutputStream out = new FileOutputStream(path+"\\"+fileName);
        out.write(arr);
        in.close();
        out.close();
        System.out.println("上傳成功!");
        return mapping.findForward("index");
    }

}

其實這些後臺代碼的基本思想就是一些輸入輸出流的讀寫而已。過程就是從FormFile類型的對象(struts1內置的類型)獲得一個輸入,然後將數據存入到一個數組中,再根據文件路徑和文件名創建輸出流,從而將文件存到文件夾中。

發佈了45 篇原創文章 · 獲贊 7 · 訪問量 7萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章