`

spring mvc 上传(ajaxfileupload.js)、下载

 
阅读更多
@RequestMapping(value = "/uploadt", produces = "text/html;charset=UTF-8")
	@ResponseBody
	public String addCaseResult(HttpServletRequest request,
			CaseResult caseResult,
			@RequestParam(value = "file", required = false) MultipartFile file) {
		String filePath = "";
		if (file != null && !file.isEmpty()) {
			String orName = file.getOriginalFilename();
			String guid = request.getParameter("guid");
			filePath = fileUpladPath + "/" + guid + "_" + orName;
			File outFile = new File(filePath);
			try {
				file.transferTo(outFile);
			} catch (Exception e) {
				logger.error(e.getMessage());
			}
		}
		ajax.setSuccess(true);
		ajax.setMsg("上传成功");
		ObjectMapper om = new ObjectMapper();
		try {
			return om.writeValueAsString(ajax);
		} catch (Exception e) {
			logger.error(e.getMessage());
			return "";
		}

	}

 

spring 配置

<!--  这里申明的id必须为multipartResolver  -->  
	<bean id="multipartResolver"
		class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
		<property name="maxUploadSize" value="100000" />
	</bean>

 

@RequestMapping(value = "/fileIsExists")
	@ResponseBody
	public AjaxJson fileIsExists(
			@RequestParam(value = "filePath", required = false) String filePath) {
		AjaxJson ajax = new AjaxJson();
		if (new File(filePath).exists()) {
			ajax.setSuccess(true);
		} else {
			ajax.setSuccess(false);
			ajax.setMsg("附件不存在");
		}
		return ajax;
	}
	/**
	 * 下载附件
	 */
	@RequestMapping("downloadFile")
	public ModelAndView downloadFile(
			@RequestParam(value = "filePath", required = false) String filePath,
			HttpServletRequest request, HttpServletResponse resp) {
		resp.setContentType("application/x-msdownload;");
		try {
			request.setCharacterEncoding("UTF-8");
		} catch (UnsupportedEncodingException e) {
			logger.error(e.getMessage());
		}
		BufferedInputStream bis = null;
		BufferedOutputStream bos = null;
		File file = new File(filePath);
		if (file.exists()) {
			try {
				long fileLength = file.length();
				filePath = filePath.replace("\\", "/");
				String fileName = filePath.substring(filePath.lastIndexOf("/") + 1);
				resp.setContentType("application/x-msdownload;");  
				resp.setHeader("Content-Disposition", "attachment;filename="
						+ new String(fileName.getBytes("utf-8"), "ISO8859-1"));  
				resp.setHeader("Content-Length", String.valueOf(fileLength));
				bis = new BufferedInputStream(new FileInputStream(filePath));
				bos = new BufferedOutputStream(resp.getOutputStream());
				byte[] buff = new byte[2048];
				int byteRead;
				while (-1 != (byteRead = bis.read(buff, 0, buff.length))) {
					bos.write(buff, 0, byteRead);
				}
			} catch (Exception e) {
				logger.error(e.getMessage());
			} finally {
				closeStream(bis, bos);
			}
		}
		return null;
	}

	private void closeStream(BufferedInputStream bis, BufferedOutputStream bos) {
		try {
			if (bis != null) {
				bis.close();
			}
			if (bos != null) {
				bos.close();
			}
		} catch (IOException e) {
			logger.error(e.getMessage());
		}
	}

 

var dataInfo = { cases: cases, description: description,password:password,insertUser:insertUser,fromUser:fromUser} ;
	$.ajaxFileUpload({  
			type : "POST",	
			secureuri :false,
			url : '<%=request.getContextPath()%>/ws/caseResult/addCaseResult?guid='+guid,
			data : dataInfo,
			dataType: 'json', 
       		fileElementId: 'file',      
       		error : function(data, status, e) {
       			alert(data.message);      
       		},       
       		success : function(data, status) {
       			var msg = data.msg;
       			var success = data.success;
       			if(success){
       				alert(msg); 
       				window.location.href="<%=request.getContextPath()%>/ws/caseResult/list";
       			}else{
       				alert(msg);
       			}      
       		}       
 	}); 

 

<form name="form" id="caseResultForm" method="post" enctype="multipart/form-data">
<li class="name_width">附件:</li>
					<li class="reg_input"><input type="file" name="file" id="file"/></li>
</form>

 

 

分享到:
评论

相关推荐

    SpringMVC结合ajaxfileupload.js实现文件无刷新上传

    在这个场景下,我们将讨论如何结合前端JavaScript库ajaxfileupload.js实现文件的无刷新上传,提高用户体验。 首先,我们需要理解SpringMVC的工作原理。SpringMVC是一个模型-视图-控制器(MVC)架构模式的实现,它...

    支持IE10的 ajaxFileUpload.js

    例如:java 使用 spring mvc 则需 @RequestMapping(value = "/xx/xx/upload.do",produces="text/html") 此文件中 判断 IE 版本 使用的是 jquery 的 support属性submitBubbles,其含义是,浏览器是否支持 dom 冒泡

    JSP使用ajaxFileUpload.js实现跨域问题

    ajaxFileUpload.js是一个JavaScript库,用来实现文件上传的异步处理。在Web开发中,跨域问题是一个常见的难题,它涉及到浏览器安全策略限制了Web页面跟不同源的服务器进行交互。跨域资源共享(CORS)是解决跨域问题...

    ajaxfileupload.js实现上传文件功能

    - **Java后端代码处理**: 在服务器端,使用Spring MVC框架中的@RequestMapping来处理上传的文件和数据。 ```java @RequestMapping(value = "/importPicFile.do", produces = "text/html;charset=utf-8") @...

    ajaxFileUpload+springMvc上传文件

    总结来说,结合`ajaxFileUpload.js`和`Spring MVC`,我们可以轻松地在Web应用中实现无刷新的文件上传功能。这种方式既提高了用户体验,又充分利用了Spring MVC的灵活性和强大的功能。记得在实际开发中,根据项目需求...

    springmvc+ajax异步上传 希望代码对大家有用

    5. **AjaxFileUpload.js**:这是一个JavaScript库,用于在客户端实现Ajax文件上传。它封装了与服务器交互的细节,如创建XMLHttpRequest对象、处理文件选择事件以及发送异步请求。 实现步骤如下: 1. **前端HTML**...

    完美SS2H+ajaxfileupload异步上传多个附件、删除

    标题中的“完美SS2H+ajaxfileupload异步上传多个附件、删除”涉及到的是一个Web应用中的文件上传功能实现,具体来说,它结合了Spring Security(SS)和Struts2 (SH)两个框架,并利用ajaxfileupload.js这个JavaScript...

    关于ajaxfileupload 文件上传实例

    本实例将重点讲解如何在Spring MVC框架下利用AjaxFileUpload实现文件上传,并探讨后台处理文件上传请求的相关代码。 首先,AjaxFileUpload是jQuery的一个插件,它通过创建隐藏的IFrame来模拟表单提交,从而实现在...

    springmvc+ajax带有文本域进行文件上传

    本示例将探讨如何结合Spring MVC和Ajax技术实现一个支持文本域和文件域的表单上传功能,同时利用ajaxfileupload.js插件来优化用户体验。让我们深入研究这个过程。 首先,`SpringMVC_Upload`这个压缩包很可能包含了...

    ajaxfileupload+springmvc例子

    而SpringMVC作为Java后端的一个强大的MVC框架,提供了处理文件上传请求的能力。本文将详细介绍如何结合 `AjaxFileUpload` 和 `SpringMVC` 实现文件上传。 ### 1. 引入库和配置 首先,确保在项目中引入了jQuery库...

    ajaxfileupload实现上传的controller方法和js实例

    在Web开发中,文件上传是一项常见的功能,而AjaxFileUpload是一种使用JavaScript和Ajax技术实现无刷新文件上传的方式。本文将详细讲解如何通过AjaxFileUpload在控制器(Controller)和JavaScript端实现文件上传的...

    springmvc入门基础之文件上传

    在本例中,可能还涉及到了`ajaxfileupload.js`,这是一个JavaScript库,可能用于实现异步文件上传,这样用户无需等待整个文件上传完成即可继续浏览其他页面内容。`AjaxFileUpload`可能是这个库中的一个类或方法,它...

    图片预览异步上传及Sping处理

    首先,`ajaxfileupload.js`是一个JavaScript库,用于实现异步文件上传,尤其是图片文件。这种技术允许用户在不刷新页面的情况下上传文件,提升用户体验。 异步文件上传的核心在于AJAX(Asynchronous JavaScript and...

    Java表格数据导出Excel&Excel数据导入到数据库

    Spring MVC提供了处理文件上传的便利支持,例如`MultipartFile`接口用于接收上传的文件。 5. **最佳实践**: 在实际应用中,为了保证数据安全性和性能,需要考虑错误处理、数据类型转换、文件大小限制、并发处理等...

    文件上传ajaxFileUpload java工程demo

    `ajaxFileUpload`是一个JavaScript库,用于实现异步(Ajax)文件上传,提供了一种无需刷新页面就能完成文件上传的方式,极大地提升了用户体验。本项目是一个基于Java的工程演示了如何使用ajaxFileUpload进行文件上传...

    WEB文件上传之SpringMVC+ajaxfileupload使用(三)

    SpringMVC是Java Web开发中的一个强大框架,而AJAXFileUpload则是一个用于异步文件上传的JavaScript库,能够提供用户友好的体验。 ### SpringMVC 框架简介 SpringMVC是Spring框架的一个模块,专门用于构建Web应用...

    解析ajaxFileUpload 异步上传文件简单使用

    在 Spring MVC 框架中,这通常是一个带有 `@RequestMapping` 注解的方法,接收 `HttpServletRequest` 和 `HttpServletResponse` 参数,以便读取上传的文件和响应客户端。例如: ```java @SuppressWarnings(...

    使用Ajax进行文件与其他参数的上传功能(java开发)

    这里使用了`ajaxfileupload.js`这个插件来处理文件上传,它简化了Ajax文件上传的过程。以下是JSP页面的部分代码: ```jsp ; charset=UTF-8" pageEncoding="UTF-8"%&gt; &lt;!DOCTYPE html&gt; ${ctx}/resources/new_js/...

Global site tag (gtag.js) - Google Analytics