Struts上传文件

编写jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title></title>
  </head>
  <body>
  <!--enctype="multipart/form-data"文件以二进制上传  -->
  <form action="files.action" method="post" enctype="multipart/form-data">
    <input name="files" type="file"><!--这里的name="files"必须和action中的属性名对应 (private File files;) -->
    <input type="submit" >
   </form>
  </body>
</html>


编写action处里请求

package action;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;

public class filesAction {
    
    private File files;

    public File getFiles() {
        return files;
    }

    public void setFiles(File files) {
        this.files = files;
    }
    
    public String execute() throws Exception{
        //输出流,并指定输出路径
        FileOutputStream fos=new FileOutputStream("f:/abc.rar");
        //创建输入流读取文件
        FileInputStream fis=new FileInputStream(files);
        //创建字节数组设置缓冲区
        byte[] bytes=new byte[1024];
        int len=fis.read(bytes);
        //边写入边读取二进制
        while(len>0){
            //趁着读取字节未覆盖原来的字节前,把其写入硬盘
            fos.write(bytes);
            //继续读取字节直到读取完
            len=fis.read();
        }
        fos.flush();
        fos.close();
        fis.close();
        return "success";
    }
}

Struts.xml配置文件

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd">
<struts>
    <package name="default" namespace="/" extends="struts-default">
        <action name="files" class="action.filesAction">
        <result name="success">index.jsp</result>
        </action>
    </package>
</struts>    

运行结果

原文地址:https://www.cnblogs.com/lgxstudy/p/4391272.html