Struts2的文件上传

基于struts的文件上传支持包:

commons-fileupload-1.2.1.jar
commons-io-1.3.2.jar
commons-logging-1.0.4.jar
freemarker-2.3.16.jar
javassist-3.7.ga.jar
ognl-3.0.jar
struts2-convention-plugin-2.2.1.1.jar
struts2-core-2.2.1.1.jar
xwork-core-2.2.1.1.jar
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<%
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 'upLoadFile.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>
  <!--当上传文件时多个时:后台名字是存在list集合里面的,所以取出时要进行遍历 代码如下:
     <s:property value=""/>取出属性
     //struts标签遍历
    <s:iterator value="file" id="f">
        <s:property value="#f"/>//利用OGNL表达式取出各个元素
     </s:iterator>
  
    -->
   
   
   <form action="fileUpload.action" method="post" enctype="multipart/form-data" >
    文件选择:<input type="file" name="file" value=""/><br>
    <input type="submit" value="submit">
    </form>
  </body>
  <!--  -->
</html>
action:
package upload;

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 StrutsUploadAction extends ActionSupport
{
	private String username;
   
	private File file;

	private String fileFileName;

	private String fileContentType;

	public String getUsername()
	{
		return username;
	}

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

	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;
	}

	@Override
	public String execute() throws Exception
	{
		String root = ServletActionContext.getRequest().getRealPath("/dom");//文件保存服务器路径
		System.out.println("11111111111111");
		InputStream is = new FileInputStream(file);//创建文件输入流
		
		System.out.println("path: " + file.getAbsolutePath());
		
		System.out.println("file: " + file.getName());
		
		System.out.println("fileFileName: " + fileFileName);
		
		File destFile = new File(root, fileFileName);//文件的保存路径和文件名字
		
		OutputStream os = new FileOutputStream(destFile);//创建文件输出流
		
		byte[] buffer = new byte[400];
		
		int length = 0;
		
		while(-1 != (length = is.read(buffer)))
		{
			os.write(buffer, 0, length);
			
			Thread.sleep(1000);
		}
		
		is.close();
		os.close();
		
		return SUCCESS;
		
	}
	/*
	 * 如果上传多个文件,则定义List<File> file;属性
	 * List<String> fileFileName;
	 * List<String> fileContentType
	 * 还是眼爱的名字 固定不变,
	 * 在list循环里面创建文件遍历输入和输出流
	 * 下面创建输入流InputStream is = new FileInputStream(file.get(i));//创建文件输入流
	 * 同理下面的操作
	 */
	
}




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值