使用jquery的上传插件:ajaxfileupload.js实现excel文件上传

阅读更多
最近做的一个使用jQuery提供的上传插件,上传excel文件功能,为了看起来美观通过一个按钮

dataType使用"json",contentType使用"application/json',后台返回字符串。

问题来了:1、虽然经过了SpirngMVC配置文件的设置来防止IE浏览器提示保存json文件,Controller返回json,但是在IE11下,仍然提示保存json文件。
解决办法:是页面改为text/html提交方式,后台通过response来返回响应内容。
2、jquery.min_1_9_1.js以及以后的版本,不支持ajaxfileupload.js中的browser.version属性设置
解决方法:添加jquery-browser.js 见附件。
注意页面引入顺序要注意,

    
    


//页面做的兼容性设置

	
	
    


后台代码
/**
	 * 上传文件信息预览
	 * 
	 * @param
	 * @return
	 * @throws IOException 
	 */
	@RequestMapping(value = "/uploadPreview", method = RequestMethod.POST)
	public void uploadPreview(
			@RequestParam(value = "excel_file", required = false) MultipartFile file,
			HttpServletRequest request, HttpServletResponse response)
			throws IOException {
		String json = "";
		Map resultMap = new HashMap();
		try {
		   json = JsonUtils.toJson(resultMap);
		} catch (Exception e) {
			// TODO: handle exception
			logger.error("uploadPreview", e);
			resultMap.put("msg", "上传出错或上传的Excel文件不合法");
			resultMap.put("success", false);
			json = JsonUtils.toJson(resultMap);
		}
		response.setContentType("text/html;charset=UTF-8");
		response.setCharacterEncoding("UTF-8");
		response.getWriter().print(json);
	}


最后还有一个问题,在IE9/IE10下有保护机制,只能通过点击上传标签来上传文件,不能通过其它按钮的触发时间来上传,否则,禁止提交文件。
解决办法:使用 来替代Button,用其for属性来指向对应的标签,这样就能提交了,好奇快!
参考URL: http://blog.csdn.net/x1172031988/article/details/70142895
  • lib.rar (34.2 KB)
  • 下载次数: 2

你可能感兴趣的:(使用jquery的上传插件:ajaxfileupload.js实现excel文件上传)