`

jquery使用ajax方式上传附件

 
阅读更多

一) 项目上需要,要用到jquery使用ajax方式上传附件的方式。 
经查找,得到一个名为ajaxFileUpload的插件。 
翻阅官方文档发现用法简单。 

Html代码  收藏代码
  1. <script type="text/javascript" src="js/jquery-1.7.2.min.js"></script>  
  2. <script type="text/javascript" src="js/ajaxfileupload.js"></script>  


Javascript代码  收藏代码
  1. $.ajaxFileUpload({  
  2.     url: "teamwork/newTaskAttachmentUpload",  
  3.     secureuri: false,  
  4.     fileElementId: "attachment",  
  5.     dataType: "json",  
  6.     beforeSend: function() {  
  7.           
  8.     },  
  9.     success: function(json) {  
  10.         alert(json.fileName);  
  11.     }  
  12. });  


二) 使用发现dataType设置成"json"时success指定的函数是不能响应的。 
非常奇怪,经过Firebug调试得知,后端传来的json字符串被"<pre></pre>"包裹一下了。 
如:{"name":"应卓", "age":"30"}被包裹成了"<pre>{"name":"应卓", "age":"30"}</pre>" 
导致不能正确地生成json对象。 

具体原因未知,有可能是这个插件与jquery1.7.2不兼容所致。 

三) 由于这个插件的源码不是gzip压缩版本,还有修改的可能。 找出相对应的源码。 
源码修改如下,可解决问题。 

Javascript代码  收藏代码
  1.     // ......  
  2.   
  3.     uploadHttpData: function( r, type ) {  
  4.         var data = !type;  
  5.         data = type == "xml" || data ? r.responseXML : r.responseText;  
  6.         // If the type is "script", eval it in global context  
  7.         if ( type == "script" )  
  8.             jQuery.globalEval( data );  
  9.         // Get the JavaScript object, if JSON is used.  
  10.         if ( type == "json" ) {  
  11.             // -------------------------------------------------------------  
  12.             // 哥修改的地方,加了一条语句。  
  13.             data = data.substring(5, data.indexOf("</pre>"));  
  14.             // -------------------------------------------------------------  
  15.             eval( "data = " + data );  
  16.         }  
  17.         // evaluate scripts within html  
  18.         if ( type == "html" )  
  19.             jQuery("<div>").html(data).evalScripts();  
  20.   
  21.         return data;  
  22.     }  
  23. })  

分享到:
评论

相关推荐

    jQuery ajax附件上传(支持多附件)

    jQuery ajax附件上传(支持多附件),单个附件、多个附件都支持,里面有注解,jQuery ajax附件上传(支持多附件),单个附件、多个附件都支持,里面有注解

    jquery实现多附件上传

    3. **Ajax上传**:通过创建XMLHttpRequest对象或使用jQuery的`$.ajax()`或`$.post()`方法,将文件数据发送到服务器。需要注意的是,由于文件数据的特殊性,通常需要使用FormData对象来封装文件和额外的数据。 4. **...

    使用jquery Ajax实现上传附件功能

    在探讨如何利用jQuery的Ajax功能上传附件之前,有必要了解Ajax与jQuery的基础知识,以及它们是如何在Web开发中应用的。Ajax(Asynchronous JavaScript and XML)是一种在无需重新加载整个页面的情况下,能够更新部分...

    jquery 异步ajax 上传附件

    半原生已封装,直接用就可以,不能用打我绿

    使用Ajax上传附件

    在"使用Ajax上传附件"的场景中,这一技术尤为实用,因为它允许用户在后台上传文件,而不会中断用户的其他交互体验。 首先,我们来看核心组件: 1. **upload.aspx**:这是一个ASP.NET网页,它通常包含一个用于处理...

    Servlet使用jquery.uploadify上传附件

    在这个场景中,我们将探讨如何使用Servlet结合jQuery的uploadify插件来实现附件的上传。Servlet是Java Web应用中的服务器端组件,用于接收客户端请求并返回响应。jQuery则是一种强大的JavaScript库,它简化了DOM操作...

    Lotus domino BS 多附件上传例子 Lotus domino jquery附件上传 domino上传附件不刷新界面

    在Lotus Domino与jQuery的集成中,一般会创建一个隐藏的表单或使用FormData对象来处理文件上传,同时利用Ajax发送请求,服务器处理完文件后返回响应,前端再根据响应更新界面状态。 **多附件上传** 多附件上传允许...

    jquery批量上传, java后台批量上传下载无BUG对接,类似qq邮箱附件上传功能

    本项目针对这一需求提供了实现,标题提及的是“jquery批量上传”与“java后台批量上传下载无BUG对接”,这涉及到前端jQuery库的使用以及后端Java技术的集成,以实现类似QQ邮箱附件上传的功能。以下将详细介绍这两个...

    Jquery ajax 上传一个或多个文件

    Jquery ajax 上传一个或多个文件,简单,易用(做成了jquery的插件)

    JQuery大文件上传

    前端可以使用jQuery的Ajax错误回调来提示用户,后端则需要处理断点续传或重新上传失败的块。 7. **优化用户体验**:为了减少用户等待时间,可以使用多线程上传或并行上传多个文件块。同时,提供取消上传的功能也很...

    ajax上传附件到服务器

    总之,使用Ajax上传附件到服务器涉及前端与后端的协同工作,需要处理文件选取、数据传输、文件存储以及安全性和性能优化等多个方面。通过理解并掌握这些知识点,可以构建高效、安全的文件上传功能。

    一个jquery 的多文件上传示例

    在IT行业中,jQuery是一个广泛使用的JavaScript库,它简化了HTML文档遍历、事件处理、动画以及Ajax交互。在这个“一个jquery的多文件上传示例”中,我们将探讨如何利用jQuery结合ASP.NET技术实现多文件上传的功能。...

    jquery批量上传附件c#源码

    标题 "jquery批量上传附件c#源码" 描述了一个使用jQuery和C#技术实现的批量附件上传功能。这个功能在Web应用中非常常见,尤其是在需要用户上传多份文件的场景下,可以极大地提高用户体验。接下来,我们将深入探讨...

    树形控件和jquery上传附件

    当用户在树形控件中选择一个项目时,可以使用jQuery上传附件功能来提交相关的文档或图片。后台通过JDBC与数据库交互,将附件信息存储在数据库中,与选定的项目关联。 5. 性能优化与安全性 在实际应用中,我们还需要...

    ASP.NET JQuery无刷新上传附件

    ASP.NET与JQuery结合实现无刷新上传附件是一种常见的前端与后端交互技术,它极大地提升了用户体验,让用户在不离开当前页面的情况下完成文件上传操作。这一技术主要涉及到以下几个关键知识点: 1. **ASP.NET**:ASP...

    jQuery-form.js、FormData、html input file、easyuiFileBox的文件上传

     使用FormData方式提交上传附件与相关数据  同时实现jQuery-form.js附件上传功能  同时实现标准的html input file提交  同时实现easyuiFileBox与标准的ajax附件上传功能 有数据库,下载直接能运行

    基于jquery的多附件上传

    综上所述,基于jQuery实现多附件上传涉及HTML5的多文件选择、File API、Ajax上传和插件应用等多个方面。通过合理利用这些技术,我们可以创建出高效、友好的文件上传功能,提升Web应用的用户体验。

    JQ多附件上传

    "JQ多附件上传"是一种基于JQuery的插件技术,它解决了用户一次性上传多个文件的需求,大大提升了用户体验。JQuery是JavaScript的一个库,以其简洁的API和丰富的功能而广受欢迎,它简化了DOM操作、事件处理以及Ajax...

    jquery动态添加多附件上传实例,开发实例

    本实例聚焦于使用jQuery动态添加多附件上传功能,这是一个常见的需求,特别是在内容管理系统、论坛或者在线表单中。在实际开发中,实现这样一个功能可能会遇到各种挑战,如文件类型检查、文件大小限制、进度显示以及...

Global site tag (gtag.js) - Google Analytics