- 浏览: 29814 次
- 性别:
- 来自: 北京
最新评论
最近做的一个使用jQuery提供的上传插件,上传excel文件功能,为了看起来美观通过一个按钮<Button />的点击事件来触发文件上传标签<input type="file" />,提交的SpirngMVC 的Controller,
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 见附件。
注意页面引入顺序要注意,
后台代码
最后还有一个问题,在IE9/IE10下有保护机制,只能通过点击上传标签来上传文件,不能通过其它按钮的触发时间来上传,否则,禁止提交文件。
解决办法:使用 <label for="excel_file" ></label>来替代Button,用其for属性来指向对应的<input type="file" id="excel_file" />标签,这样就能提交了,好奇快!
参考URL:http://blog.csdn.net/x1172031988/article/details/70142895
<button type="button" style="height: 35px; " class="paymentBtn" onclick="javascript:open_upload();">上传交费明细</button> <input type="file" id="excel_file" name="excel_file" onchange="fileSelected();" style="display:none"> <button type="button" style="height: 35px;display:none; width: 120px;" id="start_upload" class="sel_btn" onclick="javascript:start_upload();">开始上传</button> <script type="text/javascript"> //打开选择文件窗口 function open_upload(){ var flag=document.getElementById("excel_file").click(); } //上传文件 function ajaxFileUpload(paymentTitle_,excel_file_,paymentYear_,paymentMonth_,paymentTimez_,paymentContent_) { $.ajaxFileUpload ( { url: '${ctxPath}/upload/uploadPreview', type:'POST', data: { 'paymentTitle': paymentTitle_, 'excel_file': excel_file_, 'paymentYear':paymentYear_, 'paymentMonth':paymentMonth_, 'paymentTimez':paymentTimez_, 'paymentContent':paymentContent_ }, secureuri: false, fileElementId: 'excel_file', //文件上传域的ID contentType: 'text/html', dataType: 'text', //返回值类型 一般设置为json success: function (data1,status) { var data=eval('('+data1+')'); hideLoading(); if(data.success){ $(".templateName").html(data.original_name); $("#notice").css('opacity','1'); var content=""; $.each(data.rList, function(i, item) { content+="<tr><td class='col-md-1 text-center'>"+item.xuhao+"</td><td class='col-md-2 text-center'>"+ item.uuid+"</td><td class='col-md-1 text-center'>"+ item.name+"</td><td class='col-md-3 text-center'>"+ item.phonenum+"</td><td class='col-md-3 text-center'>"+ item.bzmsg+"</td><td class='col-md-2 text-center'>"+ item.feenum+"</td></tr>"; }); content+="<tr><td></td><td></td><td></td><td></td><td style='text-align:right;'>总金额:</td><td class='text-center'>"+data.dangfei_total+"</td></tr>"; $('.dangfei_Wapper').show(); $(".dangfei_notice").html(content); $("#ensurediv").css('display','block'); }else{ sweetalert(data.msg); } }, error: function(XMLHttpRequest, textStatus, errorThrown) { alert(XMLHttpRequest.status); alert(XMLHttpRequest.readyState); alert(XMLHttpRequest.responseText); //alert(textStatus); debugger; hideLoading(); sweetalert('服务器开小差了...'); }, complete: function(XMLHttpRequest, textStatus) { //this; // 调用本次AJAX请求时传递的options参数 } } ) return false; } </script>
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 见附件。
注意页面引入顺序要注意,
<script src="${ctxPath}/lib/jquery.min_1_9_1.js"></script> <script src="${ctxPath}/lib/jquery-browser.js"></script> <script src="${ctxPath}/lib/ajaxfileupload.js"></script>
//页面做的兼容性设置 <html lang="zh-CN"> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
后台代码
/** * 上传文件信息预览 * * @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<String, Object> resultMap = new HashMap<String, Object>(); 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下有保护机制,只能通过点击上传标签来上传文件,不能通过其它按钮的触发时间来上传,否则,禁止提交文件。
解决办法:使用 <label for="excel_file" ></label>来替代Button,用其for属性来指向对应的<input type="file" id="excel_file" />标签,这样就能提交了,好奇快!
参考URL:http://blog.csdn.net/x1172031988/article/details/70142895
- lib.rar (34.2 KB)
- 下载次数: 4
发表评论
-
2019java面试题
2019-01-18 01:01 9551、Map: Map是一个接口,主要实现子类有Hash ... -
Properties文件读取操作
2017-12-20 15:36 615package com.cmccsi.framework.ut ... -
ajax发送请求到Spring MVC的Controller 返回json字符串乱码
2017-10-20 17:17 387copy地址:http://blog.csdn.net/dan ... -
Spring声明式事务
2017-08-17 17:28 426常用的SSH框架中,Spring往往配置HibernateTe ... -
为什么每次看了不就还会忘记?关于Struts1的知识。
2017-07-15 16:58 446同事二胎生儿子贺喜与领导升官:既有官运蓬,又有新儿喜。宾朋随喜 ... -
java中的Dae与Calendar
2016-11-28 14:37 605Date类 在JDK1.0中,Date类是唯一的一个代表时间的 ... -
后台调用http短信接口
2016-06-20 17:08 607两种方式,第一种只能用GET方式,POST方式会报 411错误 ... -
proxool连接池的一种配置方式
2016-06-16 15:00 699今天看一个旧系统的连接池配置文件,用的Struts1 : 1 ... -
java类中和js中Date类型数据的编辑实例
2016-02-22 18:00 473今天做一个页面的简单 ... -
关于spring在web.xml中的配置时用listerer和servlet的简述
2016-02-17 16:42 676今天在看一个视频项目时,web.xml中配置用的listene ... -
Java synchronized详解
2016-01-28 10:40 419转自:http://www.cnblogs.com/devin ... -
window.location.href用法
2015-08-18 17:32 868javascript中的location.href有很多种用 ... -
springMVC与struts2的区别 搜的
2015-07-11 17:25 465目前企业中使用SpringMvc的比例已经远远超过Struts ... -
转 java观察者模式
2015-07-11 17:06 455观察者模式——顾名思义,就是一个对象观察另一个对象,当被观察的 ... -
java: 关于反射
2015-07-11 13:52 371前段时间维护系统遇到的一个问题:在服务器上运行的程序有问题,本 ...
相关推荐
使用Jquery做上传文件处理时,用到了ajaxfileupload.js 这个第三方代码,但是这个js几乎就是半成品,问题很多。现在整理如下并附修复版的ajaxfileupload.js下载。 问题: 1:无法带参数提交,只能上传文件; 2:...
`ajaxfileupload.js`是一个JavaScript库,用于实现异步文件上传功能,避免了传统文件上传时页面刷新的问题。它与jQuery的结合使得文件上传更加简便、高效。 首先,我们来理解`ajaxfileupload.js`的核心概念。这个...
ajaxfileupload.js用于文件上传
AjaxFileUpload.js是一个专为实现异步文件上传功能而设计的JavaScript库,它利用Ajax技术实现了无刷新的文件上传,极大地提升了用户体验。在本文中,我们将深入探讨AjaxFileUpload.js的工作原理、使用方法以及相关的...
其次,`ajaxfileupload.js`是主要的文件,它是一个专门用于文件上传的插件,基于jQuery构建。这个插件允许用户在不刷新页面的情况下,通过Ajax技术上传图片。异步上传意味着用户可以选择文件后,后台可以开始上传...
通过修改终于使得ajaxfileupload兼容jquery3,代码已上线运行。
**AjaxFileUpload.js** 是一个基于 jQuery 的异步文件上传插件,它允许用户在不刷新页面的情况下上传文件,提供了一种便捷、高效的文件交互体验。这个插件广泛应用于网页应用,尤其是那些需要用户交互频繁上传文件的...
此为前端进行文件上传,使用Ajax方式提交的js插件,使用方便简洁,开发很高效。
现在网上下载的上传插件(ajaxfileupload.js)很多都不支持通过设置data来传参,我这里改了一下。
ajaxfileupload.js, jquery异步文件上传插件
在实际应用中,将“jquery-1.2.1.js”和“ajaxfileupload.js”结合使用,可以轻松地实现在网页上添加一个动态的、用户友好的文件上传功能。首先,在页面中引入jQuery库,然后引入AjaxFileUpload插件。接着,通过编写...
本文将详细介绍如何解决在IE9和Firefox下使用`AjaxFileUpload.js`进行文件上传时遇到的大文件上传失效的问题。 #### 问题描述 当尝试通过`AjaxFileUpload.js`上传较大文件至服务器时,在IE9和Firefox浏览器中可能...
本文主要介绍如何在JSP项目中使用`ajaxFileUpload.js`插件解决跨域文件上传的问题,并提供了一个具体的示例代码,包括前端JS部分以及后端JSP和Struts2相关的处理逻辑。通过这个例子,我们可以深入了解整个跨域文件...
`ajaxupload.js` 和 `ajaxfileupload.js` 是两个用于实现异步文件上传的JavaScript库,它们简化了这个过程并提供了丰富的自定义选项。 首先,`ajaxupload.js` 是一个轻量级的插件,它扩展了传统的Ajax功能,允许...
总的来说,`AjaxFileUpload.js`是一个强大的JavaScript文件上传插件,通过与服务器端脚本配合,可以实现高效、便捷的文件上传功能。在实际项目中,我们需要结合具体需求进行适当的定制和优化,以实现最佳的用户体验...
jQuery.extend({ createUploadIframe: function (id, uri) { //create frame var frameId = 'jUploadFrame' + id; var iframeHtml = '<iframe id="' + frameId + '" name="' + frameId + '" top:-9999px;...
为了解决这个问题,Ajax技术被广泛应用于实现异步文件上传,其中,`ajaxfileupload.js`是一个常用的JavaScript插件,它允许开发者在不刷新页面的情况下实现文件的上传功能。 ### 一、Ajaxfileupload.js原理 ...
在这个场景下,我们将讨论如何结合前端JavaScript库ajaxfileupload.js实现文件的无刷新上传,提高用户体验。 首先,我们需要理解SpringMVC的工作原理。SpringMVC是一个模型-视图-控制器(MVC)架构模式的实现,它...
接下来,`jquery.ajaxfileupload.js` 是一个基于jQuery的文件上传插件,它扩展了jQuery的Ajax功能,使得在前端可以通过异步方式实现文件上传,提升用户体验。该插件的主要特性包括: 1. 异步上传:使用Ajax技术,...