struts2文件上传

 package com.sjy.action;
import java.io.File;
import java.io.IOException;

import org.apache.commons.io.FileUtils;
import org.apache.struts2.ServletActionContext;

public class FileUpLoad {
	private File myFile;
	private String myFileFileName;
	private String myFileContentType;
	public String upLoad(){
		String fileName = null;
		try {
			System.out.println(fileName = myFile.getName());
			System.out.println(myFileFileName);
			System.out.println(myFileContentType);
			FileUtils.copyFile(myFile, new File(ServletActionContext.getServletContext().getRealPath("/upload") + "/" + myFileFileName));
		} catch (IOException e) {
			e.printStackTrace();
		}
		return "success";
	}
	public File getMyFile() {
		return myFile;
	}
	public void setMyFile(File myFile) {
		this.myFile = myFile;
	}
	public String getMyFileContentType() {
		return myFileContentType;
	}
	public void setMyFileContentType(String myFileContentType) {
		this.myFileContentType = myFileContentType;
	}
	public String getMyFileFileName() {
		return myFileFileName;
	}
	public void setMyFileFileName(String myFileFileName) {
		this.myFileFileName = myFileFileName;
	}
	
	
	
	
}
struts.xml
<?xml version="1.0" encoding="UTF-8" ?>

<!DOCTYPE struts PUBLIC
	"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
	"http://struts.apache.org/dtds/struts-2.3.dtd">
<struts>
	<!-- Overwrite Convention -->
	<constant name="struts.convention.action.suffix" value="Controller" />
	<constant name="struts.convention.action.mapAllMatches" value="true" />
	<constant name="struts.convention.default.parent.package"
		value="rest-default" />
	<constant name="struts.convention.package.locators" value="example" />
	<constant name="struts.devMode" value="true"></constant>
	
	<package name="struts2basic" namespace="/" extends="struts-default">
		<action name="upload" class="com.sjy.action.FileUpLoad">
			<result name="success">/success.jsp</result>
		</action>
	</package>



upload.jsp
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>My JSP 'upload.jsp' starting page</title>
    
	<meta http-equiv="pragma" content="no-cache">
	<meta http-equiv="cache-control" content="no-cache">
	<meta http-equiv="expires" content="0">    
	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
	<meta http-equiv="description" content="This is my page">
	<!--
	<link rel="stylesheet" type="text/css" href="styles.css">
	-->

  </head>
  
  <body>
  		<form action="<%=basePath %>upload.action" method="post" enctype="multipart/form-data">
  			<input type="file" name="myFile">
  			<input type="submit" name="method:upLoad" value="上传">
  		</form>
  </body>
</html>





这里要注意的是Java文件中写的要接收的file的名字是什么jsp中的文件名字就要是什么
还有如果要在文件夹中存贮文件原来的名字的话。需要在Java文件的属性的名字后面加上FileName而且必须是这个比如我的就叫myFileFileName

你可能感兴趣的:(html,jsp,文件上传,struts)