Struts1上传文件

//上传界面的代码:

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@ taglib uri="http://jakarta.apache.org/struts/tags-html" prefix="html"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<html:html>
 <head>
  <title>Struts上传文件</title>
 </head>
 <body>
  <!-- 这里需要注意的是method一定要设成post,还要设置enctype为multipart/form-data-->
  <html:form action="upload" enctype="multipart/form-data" method="post">
   <table>
    <tr>
     <td>
      <div>
       <html:file property="file" size="30"></html:file>
      </div>
     </td>
    </tr>
    <tr>
     <td>
      <div>
       <html:submit property="upload" value="上传"></html:submit>
      </div>
     </td>
    </tr>
   </table>
  </html:form>
 </body>
</html:html>

 

//然后是页面对应的ActionForm
package forms;

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

public class UploadForm extends ActionForm {
 private String filename;
 private FormFile file;
 public FormFile getFile() {
  return file;
 }
 public void setFile(FormFile file) {
  this.file = file;
 }
 public String getFilename() {
  return filename;
 }
 public void setFilename(String filename) {
  this.filename = filename;
 }
 
}


//处理业务的Action

package actions;

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 forms.UploadForm;

public class UploadAction extends Action {
 @Override
 public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest req, HttpServletResponse res) throws Exception {
  UploadForm uf=(UploadForm)form;
  String filename=uf.getFilename();
  FormFile file=uf.getFile();
  if(file!=null){
   System.out.println("我叫"+file.getFileName());
  }
  //这里需要注意的是request.getRealPath();已经废弃,可以通过
                //下面的方法来替代
  String path=req.getSession().getServletContext().getRealPath("/");
  InputStream in=file.getInputStream();
  OutputStream out=new FileOutputStream(path+"/upload/"+file.getFileName());
  int read=0;
  byte[] buffer=new byte[1024];
  while((read=in.read(buffer,0,1024))!=-1){
   out.write(buffer, 0, read);
  }
  in.close();
  out.close();
  return mapping.findForward("uploadsuc");
 }
}


//Struts-config.xml的配置
 <form-beans>
  <form-bean name="uploadform" type="forms.UploadForm"></form-bean>
 </form-beans>
 <action path="/upload"
  type="actions.UploadAction"
  name="uploadform"
  input="/test/upload.jsp"
  scope="request"
  >
   <forward name="uploadsuc" path="/test/uploadsuc.jsp"/>
 </action>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值