package struts;
import javax.servlet.http.*;
import org.apache.struts.action.*;
import java.io.*;
//(1)FormFileインタフェースのインポート
import org.apache.struts.upload.FormFile;
public final class ExFileUploadAction extends Action {
public ActionForward execute(ActionMapping mapping,
ActionForm form,
HttpServletRequest req,
HttpServletResponse res) throws Exception{
//(2)アクション・フォームBeanオブジェクトの取得
ExFileUploadForm efuf = (ExFileUploadForm)form;
//(3)アクセスメソッドを使用してFormFileオブジェクトの取得
FormFile fileUp = efuf.getFileUp();
//(4)getInputStreamメソッドを使用し、入力ストリームを取得
InputStream is = fileUp.getInputStream();
//(5)入力ストリームをバッファリング
BufferedInputStream inBuffer = new BufferedInputStream(is);
//(6)ファイルのアップロード先を指定して、出力ストリームを生成
FileOutputStream fos = new FileOutputStream
("/java/Tomcat 5.0/webapps/SExam/files/"
+ fileUp.getFileName());
//(7)出力ストリームをバッファリング
BufferedOutputStream outBuffer = new BufferedOutputStream(fos);
int contents = 0;
//(8)入力データがなくなるまで入出力処理を実行
while ((contents = inBuffer.read()) != -1) {
outBuffer.write(contents);
}
outBuffer.flush();
inBuffer.close();
outBuffer.close();
//(9)一時領域のアップロードデータを削除
fileUp.destroy();
return (mapping.findForward("success"));
}
}
|