`
甘怀力
  • 浏览: 2971 次
  • 性别: Icon_minigender_1
  • 来自: 济南
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

Struts2的文件上传下载

阅读更多

   最近开始研究Struts2,感觉Struts2在封装性上比Struts1好许多,尤其是Struts2的标签和支持的多语言(ognl等)。

今天与大家分享一下,自己制作的Struts2文件上传下载的实例,希望能对大家有所帮助!

 

 首先,建立action处理类FileUploadAction,并实现模型驱动化接口ModelDriven<FileInfo>:

 

public class FileUploadAction extends ActionSupport implements ModelDriven<FileInfo>
{
	FileInfo fileinfo=new FileInfo();   //封装文件信息

	public FileInfo getModel()
	{ 
		return fileinfo;
	}
	
	@Override
	public String execute() throws Exception 
	{
		//获得服务器上保存上传文件的目录updfile的绝对路径
		String realpath=ServletActionContext.getServletContext().getRealPath("/updfile");
		//设置保存文件的路径
		fileinfo.setTargetdir(realpath);
		//设置目标文件名
		fileinfo.setTargetfilename(generateFileName(fileinfo.getDocFileName()));
		//把doc内容复制到target
		FileUtils.copyFile(fileinfo.getDoc(), new File(fileinfo.getTargetdir(),fileinfo.getTargetfilename()));
		
		return SUCCESS;
	}
	//产生唯一的文件名
	private synchronized String generateFileName(String filename)
	{
		int position=filename.lastIndexOf(".");
		String ext=filename.substring(position);
		
		return System.nanoTime()+ext;
	}
	
}

 

 附:javabean实体类:

  

  

public class FileInfo 
{
	private File doc;  				//封装上传文件的属性
	private String docFileName;		//封装上传文件的名称属性
	private String docContentType;  //封装上传文件的类型属性
	private String targetdir;   	//保存路径
	private String targetfilename;  //保存的文件名
	
	public File getDoc() {
		return doc;
	}
	public void setDoc(File doc) {
		this.doc = doc;
	}
	public String getDocFileName() {
		return docFileName;
	}
	public void setDocFileName(String docFileName) {
		this.docFileName = docFileName;
	}
	public String getDocContentType() {
		return docContentType;
	}
	public void setDocContentType(String docContentType) {
		this.docContentType = docContentType;
	}
	public String getTargetdir() {
		return targetdir;
	}
	public void setTargetdir(String targetdir) {
		this.targetdir = targetdir;
	}
	public String getTargetfilename() {
		return targetfilename;
	}
	public void setTargetfilename(String targetfilename) {
		this.targetfilename = targetfilename;
	}
}

 

   至此任务已经完成了一大半,接下来就是配置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.i18n.encoding" value="GBK"></constant>
	
      <package name="action" extends="struts-default">
 		<action name="fileupload" class="action.FileUploadAction">
 			<result>/success.jsp</result>
 			<result name="input">/index.jsp</result>
 			
 	</action>
 		
       </package>
</struts>

 

   ok,jsp操作即可:

 

    index.jsp页面

 

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

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>My JSP 'index.jsp' starting page</title>
  </head>
  
  <body>
       <!--enctype="multipart/form-data"用来指定表单数据的编码方式  -->
    <s:form action="fileupload" method="post" enctype="multipart/form-data"> 
    	上传文件:<s:file name="doc"></s:file><br/>
    	<s:submit value="上传"></s:submit>
    </s:form>
  </body>
</html>

 

    操作成功界面 success.jsp

 

   

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

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    
  </head>
  
  <body> 
    上传文件类型:<s:property value="docContentType"/><br>
    上传成功后文件位置:<s:property value="targetdir"/><br>
    上传图片:<img  src="<s:property value="'updfile/'+targetfilename"/>"><br>
  </body>
</html>

   

 

    供大家参考,还望批评指教

3
0
分享到:
评论

相关推荐

    struts2文件上传下载源代码

    在Struts2中,文件上传和下载是常见的功能需求,特别是在处理用户交互和数据交换时。这篇博客文章提供的"struts2文件上传下载源代码"旨在帮助开发者理解和实现这些功能。 文件上传功能允许用户从他们的设备上传文件...

    struts2文件上传下载

    在这个特定的项目中,我们关注的是"struts2文件上传下载"的功能,这涉及到用户通过Web界面上传文件到服务器,以及从服务器下载文件到用户的设备。 文件上传是Web应用中的常见需求,例如用户可能需要提交图片、文档...

    struts2文件上传下载实例

    对于初学者,阅读这些文档能更好地理解Struts2的用法以及文件上传下载的具体步骤。 总的来说,Struts2文件上传下载实例涵盖了Web开发中常见的两个重要功能。通过使用Maven管理依赖,编写Action类处理业务逻辑,并在...

    struts2实现文件上传下载

    本篇文章将详细探讨如何在Struts2框架下实现文件的上传与下载。 首先,我们需要了解Struts2中的文件上传机制。Struts2提供了`FileUploadInterceptor`拦截器来处理文件上传请求。在处理文件上传时,开发者需要在...

    Struts2文件上传下载和表单重复提交问题

    综上所述,Struts2文件上传下载和表单重复提交涉及多个技术点,包括Struts2的配置、文件操作、HTTP响应头设置、安全性和异常处理。理解并熟练掌握这些知识点,对于构建健壮的Web应用程序至关重要。

    struts2文件上传下载(注解版)

    在本项目中,我们关注的是Struts2中的文件上传和下载功能,这些功能是Web开发中常见的需求,尤其在处理用户数据提交或提供资源下载时。下面将详细介绍这个“struts2文件上传下载(注解版)”项目的关键知识点。 1. ...

    struts2文件上传与下载

    在Struts2中,文件上传和下载是常见的功能需求,主要用于处理用户在Web表单中提交的文件,如图片、文档等。下面将详细介绍Struts2中文件上传和下载的实现方法。 ### 1. 文件上传 #### 1.1 配置Struts2 首先,我们...

    Struts2文件上传与下载

    Struts2是一个强大的Java web框架,它为开发者提供了丰富的功能,包括处理用户表单提交、进行文件上传和下载。在Web应用中,文件上传和下载是常见的需求,例如用户上传头像、下载文档等。Struts2通过其Action类和...

    第八章:struts2文件上传下载.ppt

    第八章:struts2文件上传下载.ppt

    Struts2文件上传下载

    在Struts2中,文件上传和下载是常见的功能,它们使得用户能够交互地处理文件,如上传图片、文档或者下载资源。下面我们将深入探讨如何利用Struts2实现文件上传和下载。 一、文件上传 1. 配置Struts2核心拦截器:...

    struts2 文件上传下载

    在Struts2中,文件上传和下载是常见的功能,它们允许用户从服务器上下载文件或向服务器上传文件。理解并掌握这一部分的知识对于开发交互性强的Web应用至关重要。 ### 一、文件上传 1. **使用Struts2的FileUpload...

    struts2 文件上传

    Struts2 文件上传是Web开发中的一个重要功能,它允许用户通过网页上传文件到服务器。Struts2 是一个基于MVC(Model-View-Controller)设计模式的Java Web框架,提供了丰富的特性和强大的控制层功能,使得文件上传...

    Struts2文件上传下载 中文乱码

    在Struts2框架中,文件上传和下载是常见的功能需求,但处理中文文件名或内容时,可能会遇到中文乱码的问题。这个问题主要涉及到字符编码的处理,包括HTTP请求的编码、文件名的编码以及文件内容的编码。接下来,我们...

    struts2 文件上传功能

    Struts 2是通过Commons FileUpload文件上传。Commons FileUpload通过将HTTP的数据保存到临时文件夹,然后Struts使用fileUpload拦截器将文件绑定到Action的实例中。从而我们就能够以本地文件方式的操作浏览器上传的...

Global site tag (gtag.js) - Google Analytics