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

struts2.0 实现图片上传实例

阅读更多
嵌入编辑页面的代码
<tr>
			    <td width="40%" align="right" class="info-left">&nbsp;节点的图标:</td>
			    <td width="60%" class="info-right">
			    	<s:textfield name="icon" cssClass="input-text" onfocus="switchClass(this)" onblur="switchClass(this)"/>
			    	<s:hidden name="sysMenu.icon"/>
				</td>
			  </tr>
			  <tr>
			    <td width="40%" align="right" class="info-left">&nbsp;</td>
			    <td width="60%" class="info-right">
				    <div align="left"> 
					<iframe style="top:2px" ID="UploadIcon" src="<%=basePath%>common/upLoadFile.jsp?picUrlId=1" frameborder=0 scrolling=no width="300" height="25"></iframe>
			        </div>
			    </td>
			  </tr>
			  <tr>
			    <td width="40%" align="right" class="info-left">&nbsp;节点打开的图标:</td>
			    <td width="60%" class="info-right">
			    	<s:textfield name="iconOpen" cssClass="input-text" onfocus="switchClass(this)" onblur="switchClass(this)"/>
			    	<s:hidden name="sysMenu.iconOpen"/>
			    </td> 
			  </tr>
			  <tr>
			    <td width="40%" align="right" class="info-left">&nbsp;</td>
			    <td width="60%" class="info-right">
				    <div align="left"> 
					<iframe style="top:2px" ID="UploadIconOpen" src="<%=basePath%>common/upLoadFile.jsp?picUrlId=2" frameborder=0 scrolling=no width="300" height="25"></iframe>
			        </div>
			    </td>
			  </tr>

其中picUrlId是上传后返回的文件的路径填写在哪个文本框的标志,这使得同一个页面能多处引用这个上传图片的页面
upLoadFile.jsp
<%@ page language="java" contentType="text/html; charset=GBK"%>
<%@ taglib uri="/struts-tags" prefix="s"%>
<%
	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%>" target=_self><!-- 如果用IE6浏览,这里必须要加上target=_self否则将无法将数据写回父窗口中的文本框 -->
		<title>上传图片</title>
		<link rel="StyleSheet"  type="text/css" href="common/dtree.css"/>
		<script type="text/javascript" src="common/dtree.js"></script>
		<script type="text/javascript">  
		function returnValue(picUrl){ 
		    formdiv.style.display="none";
		    messagediv.style.display="";
		    var picUrlId = document.getElementById("picUrlId").value; 
		    if (picUrlId==1){
		    	parent.document.sysMenuForm.icon.value=picUrl;
		    } else if (picUrlId==2){
		    	parent.document.sysMenuForm.iconOpen.value=picUrl;
		    } 
		} 
		function check(){
			var strFileName=document.uploadForm.myFile.value;
			if (strFileName=="")
			{
		    	alert("请选择要上传的文件");
				document.uploadForm.myFile.focus();
		    	return false;
		  	}
		} 
	    </script>
	</head> 
    <body topmargin="0" bottommargin="0" leftmargin="0" onload="this.focus();"> 
		<table width="100%" height="100%" cellspacing="0" cellpadding="0" align="center">
			<tr>
				<td valign="top" valign="middle">
				   <div id="formdiv">
				   <form action="sysmanage/SysMenuManageAction!upLoadImage.action" method="post" name="uploadForm" onSubmit="check();" enctype="multipart/form-data">
					  <input name="myFile" type="FILE">
					  <input type="submit" name="Submit" value="上传" >
					  <input name="picUrlId" type="hidden" id="picUrlId" value="<%=request.getParameter("picUrlId")%>">
					</form> 
				    </div>
				    <div id="messagediv" style="display:none;font-size:9pt;text-align:center;">
				    	上传成功!
				    </div> 
				</td>
			</tr>
		</table>
	</body>
</html>
<s:if test="#request.imageFilePath!=null" >
	<script type="text/javascript"> 
	    returnValue('<s:property value="imageFilePath"/>'); 
	</script> 
</s:if>


Action中的代码
//上传图片参数 
   private static final int BUFFER_SIZE = 16 * 1024 ;
   private File          myFile;                //上传文件的路径
    private String        contentType;
    private String        fileName; 
    private String        imageFilePath;         //返回的图标的存储路径 
     private static void copy(File src, File dst)  {
         try  {
            InputStream in = null ;
            OutputStream out = null ;
             try  {                
                in = new BufferedInputStream( new FileInputStream(src), BUFFER_SIZE);
                out = new BufferedOutputStream( new FileOutputStream(dst), BUFFER_SIZE);
                 byte [] buffer = new byte [BUFFER_SIZE];
                 while (in.read(buffer) > 0 )  {
                    out.write(buffer);
                } 
             } finally  {
                 if ( null != in)  {
                    in.close();
                } 
                  if ( null != out)  {
                    out.close();
                } 
            } 
         } catch (Exception e)  {
            e.printStackTrace();
        } 
    }  
     private static String getExtention(String fileName)  {
         int pos = fileName.lastIndexOf( "." );
         return fileName.substring(pos);
    } 
     
     public String upLoadImage(){
    	 log.info(">>>>>>>>>>>>>>开始上传图标........");
    	 HttpServletRequest  request  = ServletActionContext.getRequest(); 
    	 String imageFileName = new Date().getTime() + getExtention(fileName);
         File imageFile = new File(ServletActionContext.getServletContext().getRealPath( "img" ) + "/" + imageFileName); 
         imageFilePath = "img" + "/" + imageFileName;
         copy(myFile, imageFile); 
         log.info(">>>>>>>>>>图标上传完成");
         return Constants.Dispatcher.TO_UPLOAD_FILE;

     }


分享到:
评论

相关推荐

    struts2.0非常实用的学习实例 本人自己精心准备

    struts2.0非常实用的实例 本人自己精心准备 struts2.0文件上传 拦截器 验证器 struts.xml配置文档详解 本人在该实例中遇到的最大问题及解决方案: "struts2.0做文件上传关于所加载的错误包造成的问题心得" 1:commons-...

    struts2.0与spring2.0集成实例

    在"struts2.0与spring2.0集成实例"中,主要的知识点包括以下几个方面: 1. **Struts2.0**:Struts2.0的核心是Action类,它是业务逻辑的入口点。它通过配置文件(struts.xml)与前端视图(JSP)和后端模型...

    Struts2.0文件上传实例

    Struts2.0文件上传是Java Web开发中的一个重要实践,它允许用户在Web应用程序中上传文件,例如图片、文档或音频文件。这个实例是针对初学者设计的,可以帮助理解并实现这一功能。以下是对Struts2.0文件上传机制及其...

    struts2.0经典实例教程

    本教程将深入探讨Struts2.0的经典实例,特别是结合JFreeChart进行图表展示的实践方法。 首先,让我们了解Struts2.0的核心概念。Struts2.0基于Model-View-Controller模式,它简化了Java Servlet和JSP的开发,通过...

    struts2.0教程合集

    包含了Struts2.0的进阶主题,如动态方法调用(Dynamic Method Invocation,DMI)、OGNL(Object-Graph Navigation Language)表达式语言的使用、异常处理机制、国际化(Internationalization, i18n)支持以及文件上传...

    struts2.0上传下载实例

    本实例重点讲解Struts2.0中的文件上传和下载功能,这对于任何处理用户数据交互的Web应用都是必不可少的特性。 在Struts2中,文件上传是通过`struts2-core.jar`、`commons-fileupload.jar`和`commons-io.jar`等库来...

    Struts2.0框架书籍

    通过代码实例,读者可以深入理解如何配置Struts2.0的XML配置文件,如何创建Action类,如何编写拦截器,以及如何与数据库进行交互等。此外,书中可能还涵盖了使用Struts2.0与其他技术的集成,如Spring、Hibernate等,...

    struts2.0应用实例

    本实例是一个入门级别的练习,旨在帮助初学者理解和掌握Struts2.0与Spring2.0的集成应用。 在Struts2.0中,Action类是业务逻辑的核心,它处理用户请求并返回相应的结果。在这个实例中,只有一个Action类,这意味着...

    struts2.0最新实例3

    本实例"struts2.0最新实例3"旨在通过具体的实践案例,帮助你深入理解和掌握Struts2.0的核心特性和用法。 1. **Struts2框架概述**:Struts2是Apache软件基金会的开源项目,它是Struts1.x的升级版,吸收了WebWork框架...

    Struts 2.0中文帮助手册.chm

    4. **丰富的插件支持**:Struts 2.0拥有众多插件,可以扩展框架的功能,如Ajax支持、文件上传下载、PDF生成等。 5. **模板技术**:Struts 2.0支持FreeMarker和Velocity等多种模板技术,方便开发者选择最适合的视图...

    struts2.0文件的上传一个实例

    接下来,我们来看一下如何在Struts2.0中实现一个文件上传的实例。首先,我们需要在Action类中定义一个字段来存储上传的文件,例如: ```java private File file; private String fileContentType; private String ...

    使用ExtJs的插件UploadDialog+struts2.0实现多文件上传

    在本文中,我们将深入探讨如何使用ExtJS的UploadDialog插件与Struts2.0框架相结合,实现一个功能完备的多文件上传功能。这是一项在Web应用开发中常见的需求,对于用户交互性和数据管理有着重要作用。 首先,让我们...

    struts2.0快速入门动画教程+实例源码

    然而,这只是Struts2.0的冰山一角,深入学习还需要掌握更多的概念,如国际化的处理、文件上传下载、异常处理、自定义拦截器等。提供的动画教程和实例源码会进一步辅助你深化理解,通过实战提升技能。在学习过程中,...

    struts 2.0的详细讲解.rar

    1. **拦截器(Interceptors)**:Struts 2.0引入了拦截器的概念,它们类似于AOP(面向切面编程)中的切面,可以插入到动作调用流程中,实现如日志、事务管理、权限检查等功能。 2. **强大的配置方式**:Struts 2.0...

    struts2.0详细教程

    Struts2.0是Java Web开发中广泛使用的MVC(模型-视图-控制器)框架,它是Apache软件基金会Struts项目的重要版本。本教程旨在深入浅出地介绍Struts2.0的核心概念、架构和实战应用,帮助开发者快速掌握这一强大的框架...

    Struts2.0+jquery.progressbar实现上传文件进度条 实例源码

    Struts2.0+jquery.progressbar实现上传文件进度条 附带实例源码 uploadJqueryProgress.jsp uploadprogress.jsp 两个上传页面,两种不一样风格的进度条。uploadJqueryProgress.jsp 是在 uploadprogress.jsp 的基础...

    Struts 2.0实例

    未上传的视频文件可能包含详细的操作演示和讲解,如如何创建Action、编写配置文件、调试程序等,这些都是理解和掌握Struts 2.0不可或缺的部分。 通过这个实例,学习者可以了解到如何使用Struts 2.0构建一个完整的...

    Struts2.0文件上传原理

    以下是对Struts2.0文件上传原理的详细解释: 1. **HTTP协议与表单提交** 在HTML表单中,如果需要上传文件,`&lt;form&gt;`标签必须包含`enctype="multipart/form-data"`属性。这是因为普通POST请求无法处理二进制数据,...

    struts2.0文件的上传与下载

    本教程将深入探讨Struts2.0如何实现文件的上传与下载,并通过具体的实例进行解析。 ### 文件上传 在Struts2中,文件上传主要依赖于`Commons FileUpload`库。以下是一些关键知识点: 1. **表单设计**:首先,我们...

    Struts2.0培训文档

    Struts2.0是一个强大的基于MVC(Model-View-Controller)设计模式的Java开源框架,被誉为MVC2,因为它相较于传统的Struts1框架在设计理念上有显著提升。该框架采用"pull"方式来处理请求,这使得它更加灵活且易于扩展...

Global site tag (gtag.js) - Google Analytics