`
宋双旺
  • 浏览: 155877 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

jeecg v2.0 实现上传功能

阅读更多

 

代码规则:

1、保证action为很薄的一层,接收数据、传递数据,根据service的结果对前端进行结果反馈;

2、service层,能处理的异常进行处理,处理不了的不进行try cathch,直接往上层抛出,通过日志记录异常信息;

 

1、页面效果如下图所示:

上传图片

 

2、jsp代码如下所示:

    <div class="easyui-panel" title="信息" style="width:400px">  
        <div style="padding:10px 0 10px 60px">  
        <form id="uploadForm" method="post" enctype="multipart/form-data" action="demoAction!upload.action">  
            <table>  
				<tr>
					<td>文件路径</td>
					<td><input name="filedata" class="easyui-validatebox" 
					                                   required="true" type="file" missingMessage="请选择上传文件" /></td>
				</tr>            
            </table>  
        </form>  
        </div>  
        <div style="text-align:center;padding:5px">  
            <a href="javascript:void(0)" class="easyui-linkbutton" onclick="submitForm()">提交</a>  
            <a href="javascript:void(0)" class="easyui-linkbutton" onclick="clearForm()">重置</a>  
        </div>  
    </div> 

 

 

3、js代码如下所示:

       function submitForm(){
      	 //提交Form
       	 var myForm = $('#uploadForm').form({
       			url : 'demoAction!upload.action',
       			success : function(data) {
       				var json = $.parseJSON(data);
       				if (json && json.success) {
       					window.parent.window.messageshow('成功',json.msg);
       				} else {
       				    window.parent.window.messageshow('失败','操作失败!');
       				}
       			}
       		});  
         if($('#uploadForm').form('validate')){
              myForm.submit();	
 	  }
       }  
       function clearForm(){ 
    	   $('#uploadForm')[0].reset();
       }  

 4、action层实现如下:

	// ××××××××××××××××××××××××××××××××××××××××××××××××××××××××××
	// ×××××××××××××××××××××××××××文件上传×××××××××××××××××××××××
	// ××××××××××××××××××××××××××××××××××××××××××××××××××××××××××	
	
	//进入上传页面
	public String uploadInput(){
		return "upload-input";
	}
	//-----------------------上传文件---------------------------
	//浏览器传递过来的信息
	private File filedata;
	
	public File getFiledata() {
		return filedata;
	}
	public void setFiledata(File filedata) {
		this.filedata = filedata;
	}

	//上传文件
	public void upload(){
		Json j = new Json();
		try {
			demoService.upload(filedata);
			j.setSuccess(true);
			j.setMsg("文件上传成功!");
		} catch (Exception e) {
			j.setMsg("文件上传失败!");
			logger.error(ExceptionUtil.getExceptionMessage(e));
		}
		writeJson(j);		 
	}	

 

 

5、service层实现如下:

	public void upload(File filedata) throws IOException {
		 String destDir = "d:/upload";
		 MultiPartRequestWrapper mpRequest = (MultiPartRequestWrapper)ServletActionContext.getRequest();
		 File[] files = mpRequest.getFiles("filedata");   
		 String[] fileNames = mpRequest.getFileNames("filedata");
		 for(int i=0;i<files.length;i++){
			 File destFile = new File(destDir+"/"+fileNames[i]);
			 FileUtils.copyFile(files[i], destFile);
		 }
	}
	

 

  • 大小: 24.4 KB
分享到:
评论
2 楼 hoho922 2013-03-27  
页面是:
    <div class="easyui-panel" title="信息" style="width:400px">  
        <div style="padding:10px 0 10px 60px">  
        <form id="uploadForm" method="post" enctype="multipart/form-data" action="mosPayslipAction!upload.action">  
            <table>  
				<tr>
					<td>文件路径</td>
					<td><input name="filedata" class="easyui-validatebox" 
					                                   required="true" type="file" missingMessage="请选择上传文件" /></td>
				</tr>            
            </table>  
        </form>  
        </div>  
        <div style="text-align:center;padding:5px">  
            <a href="javascript:void(0)" class="easyui-linkbutton" onclick="submitForm()">提交</a>  
            <a href="javascript:void(0)" class="easyui-linkbutton" onclick="clearForm()">重置</a>  
        </div>  
    </div> 
1 楼 hoho922 2013-03-27  
请教个问题啊,我做上传功能时总提示错误:[org.apache.struts2.dispatcher.Dispatcher]Removing file filedata \tmp\upload__32d85328_13da9b6beb6__7fea_00000000.tmp。是不是拦截器配置有问题啊,麻烦指导下,谢谢!structs.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>
	<constant name="struts.objectFactory" value="spring" />
	<constant name="struts.devMode" value="true" />
	<constant name="struts.configuration.xml.reload" value="true" />
	<constant name="struts.i18n.encoding" value="utf-8" />
	<constant name="struts.multipart.paeser" value="jakarta" />
	<constant name="struts.multipart.maxSize" value="104857600" />
	<constant name="struts.multipart.saveDir" value="/tmp"/>
	<package name="defaultPackage" extends="struts-default">
		<interceptors>
			<interceptor name="encodingInterceptor" class="com.jeecg.interceptor.EncodingInterceptor" />
			<interceptor-stack name="encodingStack">
				<interceptor-ref name="defaultStack"></interceptor-ref>
				<interceptor-ref name="encodingInterceptor"></interceptor-ref>
			    <interceptor-ref name="checkbox">
	        	  <param name="uncheckedValue">0</param>
	   	        </interceptor-ref>
			</interceptor-stack>

			<interceptor name="sessionInterceptor" class="com.jeecg.interceptor.SessionInterceptor" />
			<interceptor-stack name="sessionStack">
				<interceptor-ref name="encodingStack"></interceptor-ref>
				<interceptor-ref name="sessionInterceptor">
					<param name="excludeMethods">repair,deleteAndRepair,loginDatagrid,loginCombobox,login,logout,reg,ctrlTree</param>
				</interceptor-ref>
			</interceptor-stack>

			<interceptor name="authInterceptor" class="com.jeecg.interceptor.AuthInterceptor" />
			<interceptor-stack name="authStack">
				<interceptor-ref name="sessionStack"></interceptor-ref>
				<interceptor-ref name="authInterceptor">
					<param name="excludeMethods">repair,deleteAndRepair,loginDatagrid,loginCombobox,login,logout,reg,ctrlTree,onlineDatagrid,roleCombobox,authTreeRecursive,menuTreeRecursive,modifySelfPwd,showUserInfo</param>
				</interceptor-ref>
			</interceptor-stack>

			<interceptor name="fileAuthInterceptor" class="com.jeecg.interceptor.FileAuthInterceptor" />
			<interceptor-stack name="authAndFileAuthStack">
				<interceptor-ref name="authStack"></interceptor-ref>
				<interceptor-ref name="fileAuthInterceptor">
					<param name="includeMethods">uploadFile,fileManager</param>
				</interceptor-ref>
			</interceptor-stack>
			
			<!-- url param定义拦截器  -->
			<interceptor name="urlParamsInterceptor"
				class="com.jeecg.interceptor.UrlParamsInterceptor"></interceptor>
			<interceptor-stack name="urlParamStack">
				<interceptor-ref name="params" />
				<interceptor-ref name="urlParamsInterceptor"/>
				<interceptor-ref name="store">
					<param name="operationMode">AUTOMATIC</param>
				</interceptor-ref>
				<interceptor-ref name="exception" />
				<interceptor-ref name="conversionError" />
				<interceptor-ref name="paramsPrepareParamsStack" />
			</interceptor-stack>
		</interceptors>

		<default-interceptor-ref name="authAndFileAuthStack"></default-interceptor-ref>

		<global-results>
			<result name="noAuth">/error/noAuth.jsp</result>
			<result name="noFileAuth">/error/noFileAuth.jsp</result>
			<result name="noSession">/error/noSession.jsp</result>
			<result name="strutsException">/error/strutsException.jsp</result>
			<result name="noLogin">/login.jsp</result>
			<result name="error">/error/err.jsp</result>
		</global-results>

		<global-exception-mappings>
			<exception-mapping result="strutsException"
				exception="java.lang.Exception"></exception-mapping>
		</global-exception-mappings>
	</package>
</struts>

相关推荐

    jeecg-framework-v2.0

    jeecg-framework-v2.0jeecg-framework-v2.0jeecg-framework-v2.0jeecg-framework-v2.0jeecg-framework-v2.0jeecg-framework-v2.0jeecg-framework-v2.0jeecg-framework-v2.0jeecg-framework-v2.0jeecg-framework-v2.0...

    Jeecg-Boot+技术文档_2.0.pdf

    平台内置的流程设计功能支持BPMN 2.0标准,允许开发者轻松创建和管理业务流程。表单设计提供了多种解决方案,如表单设计器、在线配置表单和编码表单,确保了灵活性和可定制性。此外,Jeecg-Boot还实现了流程与表单的...

    JEECG BOOT BPM流程在线操作手册v2.0.pdf

    JEECG Boot是一个基于Java的企业级快速开发框架,它提供了BPM(Business Process Management)功能,允许开发者在无需深入了解底层实现的情况下,便捷地设计和管理业务流程。 第一章主要介绍了JEECG-BOOT-BPM流程的...

    JEECG 权限开发手册V3.7

    ### JEECG 权限开发手册V3.7 关键知识点概述 #### 一、菜单访问权限 **1.1 角色管理** - **定义与作用**:角色管理是JEECG权限管理系统中的核心部分之一,用于定义不同角色及其对应的权限集。每个角色可以被赋予一...

    jeecg-framework-v2.0 (最新源码)

    JAVA编程有很多重复机械代码, 生成器可以帮助解决50%的重复工作,让开发更多关注业务逻辑, 从而实现代码生成+手工merge的半智能开发!JEECG智能框架可以有效解决信息孤岛问题,生成统一代码、统一规范、统一设计思路...

    jeecg-boot-master2.0.zip

    总结来说,Jeecg-Boot 2.0作为一个全面的Java开发框架,凭借其强大的功能集和易用性,成为了企业级应用开发的理想选择。通过集成Spring Boot、MyBatis Plus、Ant Design Vue等技术,它不仅简化了开发流程,还提供了...

    JEECG 在线表单开发指南v3.7

    JEECG 开发文档系列 ——JEECG Online表单开发指南v3.7

    JEECG v3.3.1.beta开发手册

    v3.3.1.beta版本的开发手册是针对该版本特性和功能的详细指南,帮助开发者更好地理解和使用JEECG的各项功能。 1. **JEECG Online Coding开发手册v3.3.pdf** 这份文档主要涵盖了JEECG的在线编码功能,这是一个强大...

    【JEECG插件集成文档】JEECG在线聊天插件 - 集成文档

    此插件集成文档是关于JEECG中的在线聊天功能,它允许用户在系统内部进行实时沟通,提高协作效率。通过集成此插件,开发者可以将聊天功能无缝地融入到JEECG框架的应用中。 首先,我们来了解一下`config.js`文件。在...

    JEECG 单点登录集成文档(kisso集成)

    JEECG单点登录集成文档(kisso集成)详细介绍了如何将Kisso单点登录解决方案集成...通过以上知识点的总结,开发者能够更深入地理解Kisso在JEECG单点登录集成中的工作原理及实现方法,并能按照文档指南进行配置和开发。

    JEECG_v3开发指南v3.3

    通过以上概述可以看出,《JEECG_v3开发指南v3.3》不仅涵盖了JEECG平台的核心功能和技术要点,而且还提供了丰富的示例和实用技巧,是一本非常全面且实用的开发指南,对于想要快速上手JEECG并利用它来提高开发效率的...

    JEECG 单点登录说明文档

    JEECG智能开发平台的单点登录(SSO)功能是通过集成Kisso实现的,Kisso是一个轻量级Java权限框架,它利用加密会话cookie机制来实现单点登录服务。单点登录是一种用户登录认证方法,允许用户在多个应用系统中,只通过...

    JEECG 上传头像,图片并切割

    至于"源码"标签,这暗示了我们需要关注JEECG如何实现这些功能的内部机制。查看源代码可以帮助我们理解其工作原理,学习如何处理文件上传和图片处理的细节,以及如何在自己的项目中实现类似的功能。 最后,"工具...

    workflow-bpmn-modeler-jeecgboot V0.1.0

    总之,workflow-bpmn-modeler-jeecgboot V0.1.0 是一个专为Jeecg-Boot定制的、基于Vue.js和Flowable的工作流建模工具,通过修复原生组件的bug和增强功能,为开发者提供了更高效、更稳定的流程设计体验。无论你是...

    JEECG 开发指南v3.6.pdf )

    ### JEECG 开发指南 v3.6 关键知识点概览 #### 1. 技术背景与平台介绍 - **技术背景**:随着...以上是 JEECG 开发指南 v3.6 的关键知识点概览,希望能够帮助开发者更好地理解和掌握 JEECG 的核心功能和技术细节。

    jeecg-framework-v3.1(精简版).zip升级日志

    jeecg-framework-v3.1(精简版).zip升级日志jeecg-framework-v3.1(精简版).zip升级日志jeecg-framework-v3.1(精简版).zip升级日志jeecg-framework-v3.1(精简版).zip升级日志jeecg-framework-v3.1(精简版).zip升级日志...

    jeecg-lib上传

    Jeecg-Lib上传指的是Jeecg开源框架的库文件上传功能。Jeecg是一款基于代码生成器的Java快速开发平台,它集成了多种技术,包括Spring Boot、MyBatis Plus、Ant Design Vue前端框架等,旨在提升企业级应用的开发效率。...

    jeecg代码上传

    Jeecg平台提供了用户权限管理功能,确保只有授权的用户才能进行代码上传,防止未经授权的访问和修改。 综上所述,Jeecg代码上传是Jeecg平台开发过程中不可或缺的一部分,涉及到了版本控制、协同开发、自动化部署等...

    Jeecg-Boot技术文档

    Jeecg-Boot 的技术架构和功能设计充分考虑了开发者的实际需求,通过集成现代技术,实现了高度自动化和智能化的开发环境,降低了开发门槛,提高了开发效率。无论是初学者还是经验丰富的开发者,都可以利用Jeecg-Boot...

    JEECG 开发指南v3.6

    除了代码生成器,JEECG还提供了对Online表单开发、Online报表配置、Online图表配置等高级功能的支持,大大简化了表单和报表的开发流程,并介绍了相关的实现原理。 在权限设计方面,文档讲解了权限设计的目标、设计...

Global site tag (gtag.js) - Google Analytics