龙行天下

  政 博
随笔 - 23, 文章 - 0, 评论 - 12, 引用 - 0
数据加载中……

用struts上传文件

用到的类import org.apache.struts.upload.FormFile;

Jsp上传页面:

 

<%@ page contentType="text/html; charset=GBK" %>

<html>

<head>

<title>

strutsUploadForm

</title>

</head>

<body bgcolor="#ffffff">

<h1>

上传测试

</h1>

<form action="uploadTestAction.do" method="post" enctype="multipart/form-data" name="form1">

  <p>文本

    <input name="theText" type="text" id="theText">

</p>

  <p>文件

    <input name="theFile" type="file" id="theFile">

</p>

  <p>保存到

    <input name="saveTo" type="text" id="saveTo">

</p>

  <p>

    <input type="submit" name="Submit" value="提交">

</p>

</form>

</body>

</html>

 

 

actionForm

 

package hehe;

 

import org.apache.struts.action.*;

import javax.servlet.http.*;

import org.apache.struts.upload.FormFile;

 

public class UploadTestForm extends ActionForm {

  private String saveTo;

  private String theText;

  private org.apache.struts.upload.FormFile theFile;//文件框对应的是formFile类型

  public String getSaveTo() {

    return saveTo;

  }

  public void setSaveTo(String saveTo) {

    this.saveTo = saveTo;

  }

  public org.apache.struts.upload.FormFile getTheFile() {

    return theFile;

  }

  public void setTheFile(org.apache.struts.upload.FormFile theFile) {

    this.theFile = theFile;

  }

  public String getTheText() {

    return theText;

  }

  public void setTheText(String theText) {

    this.theText = theText;

  }

  public ActionErrors validate(ActionMapping actionMapping, HttpServletRequest httpServletRequest) {

    /**@todo: finish this method, this is just the skeleton.*/

    if(!this.getTheFile().getContentType().equals("image/pjpeg")){

      System.out.println("不是jpg");

    }//可以判断类型

    if(this.getTheFile().getFileSize()>100){

      System.out.println("长度大于1000");

    }//可以判断大小

    return null;

  }

  public void reset(ActionMapping actionMapping, HttpServletRequest httpServletRequest) {

    saveTo = null;

    theFile = null;

    theText = null;

  }

}

 

 

Action

 

package hehe;

 

import org.apache.struts.action.*;

import org.apache.struts.upload.FormFile;

import javax.servlet.http.*;

import java.io.*;

 

public class UploadTestAction

    extends Action {

  public ActionForward execute(ActionMapping actionMapping,

                               ActionForm actionForm,

                               HttpServletRequest request,

                               HttpServletResponse response) {

    UploadTestForm uploadForm = (UploadTestForm) actionForm;

    FormFile file = uploadForm.getTheFile();

    String path = uploadForm.getSaveTo();

    String theText = uploadForm.getTheText();

    try {

      InputStream input = file.getInputStream();//能从FormFile中获得输入流

      OutputStream output = new FileOutputStream(path);

      int bytesReader = 0;

      byte[] readbuffer = new byte[8192];

      while ( (bytesReader = input.read(readbuffer, 0, 8192)) != -1) {

        output.write(readbuffer, 0, bytesReader);

      }

      output.close();

    }

    catch (Exception e) {

      e.printStackTrace();

    }

    request.setAttribute("theText", theText);

    request.setAttribute("fileName", file.getFileName());//上传的文件名

    request.setAttribute("fileSize", new Integer(file.getFileSize()));//文件大小

    request.setAttribute("fileType", file.getContentType());//文件类型

    return actionMapping.findForward("success");

  }

}

 

 

结果页面

 

<%@ page contentType="text/html; charset=GBK" %>

<html>

<head>

<title>

strutsUploadResult

</title>

</head>

<body bgcolor="#ffffff">

<h1>

上传结果

</h1>

文件名:<%=request.getAttribute("fileName")%><br />

文本:<%=request.getAttribute("theText")%><br />

文件类型:<%=request.getAttribute("fileType")%><br />

文件大小:<%=request.getAttribute("fileSize")%><br />

</body>

</html>

posted on 2006-05-03 20:03 feingto 阅读(1155) 评论(1)  编辑  收藏 所属分类: Java Web

评论

# re: 用struts上传文件  回复  更多评论   

你好,你在那呀

你在北京吗
你是姓康名锋吗?
我在兰州
以后有好我问题得请教你呀

你在万维工作吗?
2006-08-06 10:31 | 天外流星

只有注册用户登录后才能发表评论。


网站导航: