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

猜你喜欢

转载自343512613-qq-com.iteye.com/blog/1825727