struts文件上传(单文件)

第01步:配置web.xml

<?xml version="1.0" encoding="UTF-8"?>

<web-app version="2.4" 

    xmlns="http://java.sun.com/xml/ns/j2ee" 

    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 

    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee 

    http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">

    

    <filter>

        <filter-name>struts2</filter-name>

        <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>

    </filter>



    <filter-mapping>

        <filter-name>struts2</filter-name>

        <url-pattern>/*</url-pattern>

    </filter-mapping>

    

  <welcome-file-list>

    <welcome-file>index.jsp</welcome-file>

  </welcome-file-list>

</web-app>

 

 

第02步:编写action类

package com.self.action;



import java.io.File;



import org.apache.commons.io.FileUtils;

import org.apache.struts2.ServletActionContext;



import com.opensymphony.xwork2.ActionContext;



/**文件上传**/

public class FileUpload {

    private File image;//得到上传的文件

    private String imageFileName;//获取上传文件的名称,命名规则:页面属性名+FileName

    private String imageContentType;//得到上传文件的类型

    

    public FileUpload() {

    }

    

    /**上传方法**/

    public String uploadFile(){

        try {

        String realPath=ServletActionContext.getServletContext().getRealPath("/images");

        System.out.println("工程路径(/images路径):"+realPath);

        if(image!=null){

            System.out.println("已经获得上传文件!");

            File parentFile=new File(realPath);//指定文件保存路径

            if(!parentFile.exists()){//保存路径不存在,则创建

                parentFile.mkdirs();

            }

            File saveFile=new File(parentFile,imageFileName);//parentFile:保存路径,imageFileName:保存文件名

            FileUtils.copyFile(image, saveFile);//将上传的image复制到saveFile中

            ActionContext.getContext().put("message", "保存成功!");

        }

        } catch (Exception e) {

            e.printStackTrace();

        }

        return "tsuccess";

    }



    public File getImage() {

        return image;

    }



    public void setImage(File image) {

        this.image = image;

    }



    public String getImageFileName() {

        return imageFileName;

    }



    public void setImageFileName(String imageFileName) {

        this.imageFileName = imageFileName;

    }



    public String getImageContentType() {

        return imageContentType;

    }



    public void setImageContentType(String imageContentType) {

        this.imageContentType = imageContentType;

    }





}

 

第03步:配置struts.xml

<?xml version="1.0" encoding="UTF-8" ?>

<!DOCTYPE struts PUBLIC

    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"

    "http://struts.apache.org/dtds/struts-2.0.dtd">



<struts>

    <constant name="struts.action.extension" value="do,action"/>

    

    <package name="transform" namespace="/" extends="struts-default">

        <action name="list_*" class="com.self.action.FileUpload" method="{1}">

            <result name="tsuccess">

                /outdata.jsp

            </result>

        </action>

    </package>

</struts>

 

第04步:编写界面

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>

<html>

  <body>

      <form method="post" action="list_uploadFile.action" enctype="multipart/form-data">

          文件:<input type="file" name="image">

          <BR>

          <input type="submit" value="上传文件">

      </form>

  </body>

</html>

 

第05步:注意事项

保存路径:控制台输出有,

form表单方法:method="post",

form表单类型:enctype="multipart/form-data",

form表单input名字:同action里面属性名"image"
文件过大,会出异常,需要在struts配置里修改属性

需要导入包:  

struts文件上传(单文件)

你可能感兴趣的:(struts)