`
ye_haiqiang
  • 浏览: 88177 次
  • 性别: Icon_minigender_1
  • 来自: 福州
社区版块
存档分类
最新评论

Struts上传文件实现代码

阅读更多

Struts上传文件实现代码

界面代码:

1、upload.jsp页面代码

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>    
    <title>文件上传</title>
  </head>
  
  <body>
    <!-- 文件上传 -->
    <s:form action="upload" method="post" enctype="multipart/form-data">
    <table>
    	<tr>
	    	<!-- 上传文件标签定义 -->
	    	<td>上传文件:<s:file name="file"></s:file></td>
    	</tr>
    	<tr>
    		<td>再次上传文件:<s:file name="file"></s:file></td>
    	</tr>
    	<tr>
    		<td align="left"><s:submit name="submit" value="提交"></s:submit></td>
    	</tr>
    	
    </table>
    
    </s:form>
  </body>
</html>

 

 

下载页面代码(result.jsp) 

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
  <title>上传结果</title>
  </head>
  
  <body>
    上传文件:
    <table>
    <!-- 循环显示上传成功文件名 -->
    <s:iterator value="fileFileName" status="fn">
    <tr>
    	<td>
    		<!-- 上传成功文件名 -->
    		<s:property/>
    	</td>
    	<td>
    		<!-- 下载文件链接内容为定义的下载Action -->
    		<!-- 下载文件名作为链接参数fileName值,用OGNL表达式表达 -->
    		<a href="<s:url value='download.action'><s:param name='fileName' value='fileFileName[#fn.getIndex()]'/></s:url>">下载</a>
    	</td>
    </tr>
    </s:iterator>
    </table>

  </body>
</html>

  

功能实现代码:

 

 

1、上传功能

package struts.action;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.List;

import org.apache.struts2.ServletActionContext;

import com.opensymphony.xwork2.ActionSupport;
public class UploadAction extends ActionSupport 
{
	//上传文件存放路径
	private final static String UPLOADDIR="/upload";
	
	//上传文件集合
	private List<File> file;
	
	//上传文件名集合
	private List<String> fileFileName;
	
	//上传文件内容类型集合
	private List<String> fileContentType;

	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;
	}
	
	
	//执行上传文件
	private void uploadFile(int i) throws IOException 
	{
		try {
			InputStream in=new FileInputStream(file.get(i));
			String dir=ServletActionContext.getRequest().getRealPath(UPLOADDIR);
			File uploadFile=new File(dir,this.getFileFileName().get(i));
			OutputStream out=new FileOutputStream(uploadFile);
			byte[] buffer=new byte[1024*1024];
			int length;
			while((length=in.read(buffer))>0)
			{
				out.write(buffer,0,length);
			}
			in.close();
			out.close();
		} catch (FileNotFoundException e) {
			
			e.printStackTrace();
		}
		
	}
	
	
	//循环上传每个文件
	public String execute()throws Exception
	{
		for(int i=0;i<file.size();i++)
		{
			uploadFile(i);
		}
		return "success";
	}


	
}

 

 

2、下载功能

package struts.action;

import java.io.InputStream;
import java.io.UnsupportedEncodingException;

import org.apache.struts2.ServletActionContext;

import com.opensymphony.xwork2.ActionSupport;

public class DownLoadAction extends ActionSupport
{
	//下载文件原始存放路径
	private final static String DOWNLOADFILEPATH="/upload";
	
	//文件参数变量
	private String fileName;

	public String getFileName()
	{
		return fileName;
	}

	public void setFileName(String fileName)
	{
		this.fileName = fileName;
	}
	//从下载文件原始存放路径读取得到文件输出流
	public InputStream getDownloadFile()
	{
		return ServletActionContext.getServletContext().getResourceAsStream(DOWNLOADFILEPATH+"/"+fileName);
	}
	public String getDownloadChineseFileName()
	{
		String downloadChineseFileName=fileName;
		try 
		{
			downloadChineseFileName=new String(downloadChineseFileName.getBytes(),"ISO8859-1");
		} 
		catch (UnsupportedEncodingException e) 
		{
			e.printStackTrace();
		}
		return downloadChineseFileName;
	}
	public String execute()
	{
		return "success";
	}
}

 

 每天一点点希望对大家有利! 
分享到:
评论

相关推荐

    struts2文件上传下载源代码

    文件上传功能允许用户从他们的设备上传文件到服务器。在Struts2中,这通常通过表单实现,表单包含一个`&lt;input type="file"&gt;`元素,用户可以选择本地文件。Struts2的Action类会接收这个文件,并使用`Commons ...

    基于struts的文件上传下载源代码

    总的来说,"基于Struts的文件上传下载源代码"是一个很好的实践项目,它涵盖了Struts框架的用法,文件上传和下载的实现,以及一些基础的Web开发概念。通过深入研究和模仿这些代码,你可以更好地掌握Java Web开发的...

    struts2上传文件源代码

    在这个“struts2上传文件源代码”中,我们将深入探讨Struts2如何实现文件上传功能,以及涉及到的相关知识点。 首先,文件上传是Web应用中常见的功能,它允许用户从本地计算机选择文件并将其发送到服务器。在Struts2...

    struts实现的文件上传下载功能

    避免路径遍历攻击,确保文件存储在安全目录下,防止恶意文件的执行,以及检查上传文件的大小和类型,防止过大文件导致服务崩溃或恶意文件注入。 在本例中,提供的"updown"可能是一个包含示例代码、配置文件或测试...

    struts2实现文件上传下载

    创建`UploadAction`类,定义`List&lt;FileInfo&gt;`字段,并实现上传文件的方法。例如: ```java public class UploadAction extends ActionSupport { private List&lt;FileInfo&gt; files; // getters and setters... ...

    struts实现文件上传和下载源代码

    在Struts配置中,可以通过`filter-config`的`maxSize`属性来限制上传文件的大小。如果上传的文件超过这个限制,Struts会抛出异常,你可以捕获这个异常并返回相应的错误信息给用户。 4. **版本问题** Struts有多个...

    struts 文件上传 Struts实现文件上传

    - `FormFile`: 用于封装上传文件的信息,包括文件名、类型、大小等。 ### 4. 配置文件 在Struts配置文件(struts-config.xml)中,你需要添加`multipart-config`元素到`&lt;form-beans&gt;`部分,指定文件上传的临时存储...

    struts与hibernate实现文件的上传与动态下载

    其中,`getUpload()`返回上传文件的输入流,`getSavePath()`返回文件保存的路径,`getNumberFileName()`则是生成一个唯一文件名的方法,通常基于当前时间戳,避免文件重名。 5. **JSP页面**:在用户界面,需要一个...

    Struts1实现文件上传源码

    7. **安全性考虑**:为了确保应用的安全性,应限制上传文件的大小和类型,防止恶意用户上传大文件占用服务器资源,或者上传包含恶意代码的文件。 在提供的`UpLoadWeb`压缩包中,包含了完整的源码,包括ActionForm、...

    struts1实现文件上传

    5. **文件大小转换**:根据文件的大小单位(Byte, KB, MB),进行相应的格式化输出,以便于用户理解上传文件的实际大小。 #### 示例代码解析 - **文件名的生成**:利用当前时间戳生成唯一的文件名,确保每个上传的...

    struts2 实现文件批量上传

    Struts2是一个强大的MVC(模型-视图-控制器)框架,广泛应用于Java Web开发中。文件批量上传是Web应用中常见的需求,特别是在处理大量数据或者...同时,为了安全起见,应对上传文件进行权限控制,防止恶意文件的上传。

    Struts1实现的文件上传

    在这个“Struts1实现的文件上传”项目中,我们将深入探讨如何在Struts1框架下实现文件上传功能,并不涉及文件下载的部分。 首先,理解文件上传的基本流程是至关重要的。在Web应用中,用户通过HTML表单选择本地文件...

    struts2文件上传代码.rar

    这个"struts2文件上传代码.rar"压缩包很可能是包含了一个示例项目,展示了如何在Struts2框架下实现文件上传。 首先,我们需要了解Struts2中的Action类。Action类是处理用户请求的核心组件,通常每个Action类对应一...

    struts2实现多文件上传下载

    1.能够对多个文件进行上传(可以选择上传文件个数,也即上传文件个数不定) 2.能够对上传路径进行配置文件指定(upload.properties),使用了一些类似单例模式的静态代码块 3.Struts2进行下载处理,能对上传的所有...

    Struts+swfupload实现文件上传功能

    Struts和SwfUpload是两种在Web开发中用于构建强大功能的应用工具,它们结合使用可以实现高效的文件上传功能。在本文中,我们将深入探讨这两个组件以及如何将它们整合以实现文件上传。 首先,Struts是一个基于MVC...

    基于Struts2的文件上传下载功能的完整源代码。

    在基于Struts2的文件上传下载功能中,它提供了处理用户上传文件和提供文件下载的服务。这个完整的源代码是实现这些功能的一个实例,经过测试确保了其正确性和可用性。 首先,我们要理解Struts2中的Action类。Action...

    Struts2实现文件上传

    在Struts2文件上传中,通常会有一个成员变量用于存储上传文件的MIME类型,这个变量的名称应该是`uploadContentType`而不是`uploadContextType`。尽管这个错误并不会导致程序无法运行,但修正它能提高代码的可读性和...

    struts上传多文件

    -- 设置上传文件的最大大小 --&gt; &lt;package name="default" extends="struts-default"&gt; &lt;result name="success"&gt;/success.jsp &lt;result name="input"&gt;/upload.jsp ``` 在JSP页面中,创建一个HTML表单,使用`...

    struts2文件上传

    默认情况下,这个拦截器可能会限制上传文件的类型为`.txt`,并且大小不超过10MB。这种限制是为了防止恶意用户上传大文件或者非文本文件,从而可能对服务器造成压力或引入安全风险。 配置文件`struts.xml`中关于文件...

Global site tag (gtag.js) - Google Analytics