文件上传(三)

使用struts2实现上传,代码将更简单

 

上传页面upload.jsp,action类UploadAction.java

 

 

upload.jsp(上传多个文件)

 

<body>
  <s:form action="upload" method="post" enctype="multipart/form-data">
   <table align="center" width="60%" border="1">
    <tr>
     <td>
      username
     </td>
     <td>
      <s:textfield name="username" />
     </td>

    </tr>

    <tr>
     <td>
      password
     </td>
     <td>
      <s:password name="password"></s:password>
     </td>

    </tr>

    <tr>
     <td>
      file
     </td>
     <td id="more">
      <s:file name="file"></s:file>
      <input type="button" value="add more..." οnclick="addmore()" />
     </td>


    </tr>
    <tr>
     <td colspan="2">
      <s:submit></s:submit>
     </td>
    </tr>
   </table>
  </s:form>
 </body>

 

UploadAction.java

public class UploadAction extends ActionSupport {
 
 private String username;
 
 private String password;

 //上传多个文件,属性放入list中
 private List<File> file;
 
 //以下两属性对应struts jar包中类FileUploadInterceptor.class中(254行)
 private List<String> fileFileName;

 private List<String> fileContentType;

 public String execute() throws Exception {

  for (int i = 0; i < file.size(); i++) {
   
   //上传文件传入输入流
   InputStream is = new FileInputStream(file.get(i));
   
   //指定上传路径
   String root = ServletActionContext.getRequest().getRealPath(
     "/upload");
   
   
   File destFile = new File(root, this.getFileFileName().get(i));
   
   OutputStream os = new FileOutputStream(destFile);

   byte[] buffer = new byte[400];

   int length = 0;

   while ((length = is.read(buffer)) > 0) {
    os.write(buffer, 0, length);
   }
   is.close();
   os.close();
  }
  return SUCCESS;

 }

 public String getUsername() {
  return username;
 }

 public void setUsername(String username) {
  this.username = username;
 }

 public String getPassword() {
  return password;
 }

 public void setPassword(String password) {
  this.password = password;
 }

 public List<File> getFile() {
  return file;
 }

 public void setFile(List<File> file) {
  this.file = file;
 }

 public List<String> getFileFileName() {
  return fileFileName;
 }

 public void setFileFileName(List<String> fileFileName) {
  this.fileFileName = fileFileName;
 }

 public List<String> getFileContentType() {
  return fileContentType;
 }

 public void setFileContentType(List<String> fileContentType) {
  this.fileContentType = fileContentType;
 }

}

struts.xml

<action name="upload" class="com.test.action.UploadAction">
      <result name="success">/upload/uploadresult.jsp</result>
      <result name="input">/upload/upload.jsp</result>
     </action>

uploadresult.jsp

  <body>
  username:<s:property value="username"/><br>
 
 password:<s:property value="password"/><br>
 
 file1:<s:property value="file"/><br>
 
 
  </body>

 

接下来可以扩展,上传多个文件,判断文件格式和大小

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值