`
hualikejava
  • 浏览: 171495 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

spring mvc ajaxfileupload上传文件

    博客分类:
  • java
阅读更多

使用ajaxfileupload.js列子
异步提交,无刷新上传,感觉还不错。如果再进行优化加上进度条更好了。我使用的是spring mvc
jsp页面

<script type="text/javascript">
function ajaxFileUpload()
{
	$.ajaxFileUpload
	({
			url:basePath+'/manager/app/upload.json',
			secureuri:false,
			fileElementId:'fileToUpload',
			dataType: 'json',
			success: function (data, status)
			{
				$("#img").attr("src", '${pageContext.request.contextPath}'+data.message);
			},
			error: function (data, status, e)
			{
				alert(data.status);
				alert(data.message+" error:  "+e);
			}
			
		}
	)
	return false;
}

</script>
<td>
				<img id="img"  alt=""  height="90" width="120" src="${pageContext.request.contextPath}/images/default.jpg"/>	
				<input type="file" name="fileToUpload" id="fileToUpload"/>
				<button class="button" id="buttonUpload" onclick="return ajaxFileUpload();">Upload</button>
			</td>




后端代码

@ResponseBody
@RequestMapping("upload")
public JsonResult upload(HttpServletRequest request)
	{
		HttpSession session = request.getSession();
		WebUserContext context = WebUserContext.get(session);
		MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
		String pathDir = "/files/" + context.getUserId()+"/";
	       /**得到图片保存目录的真实路径**/    
		String logoRealPathDir = request.getSession().getServletContext().getRealPath(pathDir);   
		/**根据真实路径创建目录**/    
		File logoSaveFile = new File(logoRealPathDir);     
		if(!logoSaveFile.exists())     
			logoSaveFile.mkdirs();           
		 /**页面控件的文件流**/    
		MultipartFile multipartFile = multipartRequest.getFile("fileToUpload"); 
		/**获取文件的后缀**/    
		System.out.println(multipartFile.getOriginalFilename());
		String suffix = multipartFile.getOriginalFilename().substring  
		(multipartFile.getOriginalFilename().lastIndexOf(".")); 
		
		 /**拼成完整的文件保存路径加文件**/    
		String name = +  System.currentTimeMillis()+suffix;
		String fileName = logoRealPathDir + File.separator+name;    
		File file = new File(fileName); 
		
		String data = file.getPath();
		try {
			multipartFile.transferTo(file);
		} catch (IllegalStateException e) {
			e.printStackTrace();
			JsonResult.error("-1");
		} catch (IOException e) {
			e.printStackTrace();
			JsonResult.error("-1");
		} 
		System.out.println(pathDir+name);
		return JsonResult.ok(pathDir+name);//直接返回string 也可以
	}


使用的时候注意几点
1.使用的时候如果选择数据类型是json 的改下ajaxfileload.js 的
uploadHttpData方法,因为他默认给多出<pre>烦人的标签。

 if ( type == "json" )
        	data = r.responseText;
        	 var start = data.indexOf(">");
        	 if(start != -1) {
        		 var end = data.indexOf("<", start + 1);
        		 if(end != -1) {
        			 data = data.substring(start + 1, end);
        		 }
        	 }
        	eval( "data = " + data );



2.上传完成后注意路径,正确路径才能显示出来。
3.img添加一个属性
$("#img").attr(src,"上传的图片路径")
3.针对jquery.js1.6以下有的版本,具体版本不记得了,反正出现了不支持haddererror,所以还是得加一个函数,在国外网站上看到的,具体地址忘记了,代码如下,添加到ajaxfileupload.js

 handleError:function( s, xhr, status, e ) {
	    if ( s.error ) {
	        s.error.call( s.context || window, xhr, status, e );
	    }
	    if ( s.global ) {
	        (s.context ? jQuery(s.context) : jQuery.event).trigger( "ajaxError", [xhr, s, e] );
	    }
	}
 
分享到:
评论
1 楼 org_zhanghua 2014-04-18  
为什么我这边上传成功后,提示下载json
请指导一下:
http://www.oschina.net/question/107380_151555

相关推荐

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

    在这个场景中,我们关注的是如何利用Spring MVC实现文件的上传和下载功能,并且特别提到了`ajaxfileupload.js`这个JavaScript库。 文件上传是Web应用中的常见需求,Spring MVC提供了方便的API来处理这类操作。首先...

    关于ajaxfileupload 文件上传实例

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

    ajaxFileUpload+springMvc上传文件

    在本文中,我们将深入探讨如何使用`ajaxFileUpload`与`Spring MVC`框架结合实现异步文件上传功能。`ajaxFileUpload`是一个基于JavaScript的插件,它允许我们使用Ajax技术进行文件上传,无需刷新页面,提高用户体验。...

    文件上传ajaxFileUpload java工程demo

    4. 配置文件:可能包含Spring MVC的配置,定义了文件上传的相关设置,如临时目录、最大文件大小等。 为了运行这个demo,你需要确保你有一个支持Spring MVC的Java环境,并正确配置了Web服务器(如Tomcat)。在解压后...

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

    在本文中,我们将深入探讨如何在Web应用中实现文件上传功能,特别关注SpringMVC框架与AJAXFileUpload库的整合。SpringMVC是Java Web开发中的一个强大框架,而AJAXFileUpload则是一个用于异步文件上传的JavaScript库...

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

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

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

    在本文中,我们将深入探讨如何使用Spring MVC与Ajax实现异步文件上传,这是一项常见的Web开发任务,可以显著提升用户体验。我们将关注以下关键知识点: 1. **Spring MVC**:Spring MVC是Spring框架的一个模块,用于...

    springmvc入门基础之文件上传

    在Spring MVC框架中,文件上传是一项常见的功能,用于允许用户通过网页上传文件到服务器。这篇博客"springmvc入门基础之文件上传"显然会讲解如何在Spring MVC应用中实现这一功能。我们将探讨相关的关键知识点,包括...

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

    这个方法通常会接受MultipartFile类型的参数,这是Spring MVC提供的用于处理文件上传的类。你可以设置文件保存路径,校验文件类型和大小,然后将文件写入到指定位置。 以下是一个简单的示例: ```java @Controller...

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

    这个实例中,前端使用AjaxFileUpload发送文件,后端使用Spring MVC接收并处理文件。这只是一个基本示例,实际项目中可能需要根据具体需求进行调整和扩展,例如添加文件预览、多文件上传、上传进度显示等功能。

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

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

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

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

    ajaxfileupload+springmvc例子

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

    springMVC + easyui + $.ajaxFileUpload实现文件上传注意事项

    在使用easyUI做前端样式展示时,遇到了文件上传的问题,而且是在弹出层中提交表单,想做到不刷新页面,所以选择了使用ajaxFileUpload插件。提交表单时一直发现后台接收不到文件,后检查发现,原来是文件的id不对。 ...

    ajaxfileupload.js实现上传文件功能

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

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

    在服务器端,如Spring MVC框架中,需要配置相应的Controller来处理文件上传的请求。在配置文件中,设置了两种类型的返回结果:一种是成功上传时返回的内容类型,另一种是上传失败时返回的内容类型。Action类中的...

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

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

    支持IE10的 ajaxFileUpload.js

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

    基于struts+hibernate+spring银行开发的接口小系统

    4. `AjaxFileUpload-0.03.jar`:这是一个Ajax文件上传组件,允许用户在不刷新页面的情况下上传文件。在Web应用中,它可以提供更好的用户体验,尤其在银行系统中,用户可能需要上传证明文件或进行其他交互式操作。 ...

Global site tag (gtag.js) - Google Analytics