• java学习笔记 (8) —— Struts2 实现上传


    1、新建upload.jsp

    <%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%>
    <%@ taglib prefix="s" uri="/struts-tags" %>
    
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>
      </head>
      
      <body>
      <s:form action="upload" theme="simple" method="post" namespace="" enctype="multipart/form-data">
          <table align="center" width="40%" border="1">
              <tr>
                  <td>
                      username
                  </td>
                  <td>
                      <s:textfield name="username" ></s:textfield>
                  </td>
              </tr>
               <tr>
                  <td>
                      password
                  </td>
                  <td>
                      <s:textfield name="password" ></s:textfield>
                  </td>
              </tr>
            <tr>
                  <td>
                      file
                  </td>
                  <td>
                    <s:file name="file"></s:file>
                  </td>
              </tr>
            <tr>
                  <td>
                    <s:submit value=" submit "></s:submit>
                  </td>
                  <td>
                      <s:reset value=" reset "></s:reset>
                  </td>
              </tr>
          </table>
          
      
      </s:form>
      </body>
    </html>

    2、新建uploadResult.jsp

    <%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%>
    <%@ taglib prefix="s" uri="/struts-tags" %>
    
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>
        <title>My JSP 'uploadResult.jsp' starting page</title>
      </head>
      
      <body>
        username:<s:property value="username"></s:property>
          password:<s:property value="password"></s:property>
          file:<s:property value="fileFileName"></s:property>
      </body>
    </html>

    3、新建UploadAction.java

    package com.test.action;
    
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.io.InputStream;
    import java.io.OutputStream;
    
    import org.apache.struts2.ServletActionContext;
    
    import com.opensymphony.xwork2.ActionSupport;
    
    public class UploadAction extends ActionSupport {
    
        private static final long serialVersionUID = 1L;
    
        private String username;
        
        private String password;
        //必须添加的三个属性
      //file
    private File file; //fileFileName private String fileFileName; //fileContentType private String fileContentType; 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 File getFile() { return file; } public void setFile(File file) { this.file = file; } public String getFileFileName() { return fileFileName; } public void setFileFileName(String fileFileName) { this.fileFileName = fileFileName; } public String getFileContentType() { return fileContentType; } public void setFileContentType(String fileContentType) { this.fileContentType = fileContentType; } public String execute() throws Exception { InputStream is = new FileInputStream(file); String root = ServletActionContext.getServletContext().getRealPath("/upload"); File destFile = new File(root,this.getFileFileName()); OutputStream os = new FileOutputStream(destFile); //字节数组 byte[] buffer = new byte[400]; int length = 0; while ((length = is.read(buffer))>0) { os.write(buffer); } is.close(); os.close(); return SUCCESS; } }

    4、struts.xml

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

     多文件上传:

    1、upload.jsp

      <body>
      <s:form action="upload" theme="simple" method="post" namespace="" enctype="multipart/form-data">
          <table align="center" width="40%" border="1">
              <tr>
                  <td>
                      username
                  </td>
                  <td>
                      <s:textfield name="username" ></s:textfield>
                  </td>
              </tr>
               <tr>
                  <td>
                      password
                  </td>
                  <td>
                      <s:textfield name="password" ></s:textfield>
                  </td>
              </tr>
            <tr>
                  <td>
                      file1
                  </td>
                  <td>
                    <s:file name="file"></s:file>
                  </td>
              </tr>
              <tr>
                  <td>
                      file2
                  </td>
                  <td>
                    <s:file name="file"></s:file>
                  </td>
              </tr>
                      <tr>
                  <td>
                      file3
                  </td>
                  <td>
                    <s:file name="file"></s:file>
                  </td>
              </tr>
            <tr>
                  <td>
                    <s:submit value=" submit "></s:submit>
                  </td>
                  <td>
                      <s:reset value=" reset "></s:reset>
                  </td>
              </tr>
          </table>
          
      
      </s:form>
      </body>

    2、uploadResult.jsp

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

    3、uploadAction.jsp

    package com.test.action;
    
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.io.InputStream;
    import java.io.OutputStream;
    import java.util.List;
    
    import javax.swing.ListModel;
    
    import org.apache.struts2.ServletActionContext;
    
    import com.opensymphony.xwork2.ActionSupport;
    
    public class UploadAction extends ActionSupport {
    
        private static final long serialVersionUID = 1L;
    
        private String username;
        
        private String password;
        
        private List<File> file;
        
        private List<String> fileFileName;
        
        private List<String> fileContentType;
        
        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;
        }
    
        public String execute() throws Exception
        {
            for (int i = 0; i < file.size(); i++) {
                InputStream is = new FileInputStream(file.get(i));
                String root = ServletActionContext.getServletContext().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);
                }
                is.close();
                os.close();
            }
            return SUCCESS;
        }
    }
  • 相关阅读:
    IDEA2019.1.2破解教程
    Java基础 -- 常见异常
    Java基础 -- Java基本类(部分)
    Java基础 -- IO流
    Java基础 -- Java方法
    Java数组
    IDEA首次配置问题
    Java开发环境搭建
    dos的几种打开方式和基本dos命令
    SpringBoot内外部配置文件加载和优先级
  • 原文地址:https://www.cnblogs.com/cklovefan/p/5264939.html
Copyright © 2020-2023  润新知