`
midstr
  • 浏览: 33242 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

伪ajax方式提交带文件上传的表单

    博客分类:
  • java
阅读更多

       
       在ajax还没有流行起来的时候,因为表单使用form的action进行页面跳转提交,所以不存在什么问题。


        自从ajax流行起来之后,一般的表单都是通过ajax方式提交,所以碰到带文件上传的表单就比较麻烦。后来在网上查了一下,基本都没有比较好的解决办法,所以还是对这种特殊的表单使用页面跳转方式提交。最近看到同事用一种伪ajax方式解决了此问题。其基本原理就是在页面增加一个隐藏iframe,然后通过ajax提交除文件之外的表单数据,在表单数据提交成功之后的回调函数中,通过form单独提交文件,而这个提交文件的form的target就指向前述隐藏的iframe。代码如下(注意form的target属性指向隐藏的iframe):

 

<form style="padding:0px;margin:0px;" target="upload" action="/xxx/xx.do" id="uploadForm" name="uploadForm" encType="multipart/form-data" method="post">
                 
<input  type="file" id=""attachFile/>
</form>

<iframe name="upload" style="display:none"></iframe>

      上述伪ajax方法的缺点是,表单数据和文件数据不能做到一个事物里面,如果后面文件上传失败(比如网络中断、服务器down掉等),则前面上传的表单数据算是垃圾数据了。当然这个在对数据一致性要求不是很高的环境,还是不错的解决办法。
分享到:
评论

相关推荐

    Ajax方式提交带文件上传的表单及隐藏iframe应用

    然而,通过使用隐藏的iframe,我们可以实现Ajax方式提交带文件上传的表单。 基本思路如下: 1. **创建HTML表单**:首先,我们需要创建一个包含文件输入字段的表单,设置enctype为"multipart/form-data",method为...

    ajax文件上传

    文件上传在Web应用中是一个常见的需求,传统方式通常是通过表单提交,页面会跳转或刷新,这在用户体验上并不理想。Ajax文件上传则允许用户在不离开当前页面的情况下完成文件上传,提升了交互性。然而,由于浏览器...

    一个伪ajax图片上传代码实现示例

    在隐藏的iframe中提交表单是伪Ajax上传的核心技术。通过JavaScript创建一个隐藏的iframe元素,并将表单的action设置为这个iframe的名称,使得表单提交时,实际上是提交到一个在当前页面内嵌的隐藏的iframe中,而不是...

    实现的upload文件上传

    下面将详细讲解如何利用这些技术来实现文件上传,并带上传进度条以及根据扩展名过滤文件的功能。 首先,`ExtJS` 是一个强大的JavaScript库,用于构建桌面级的富客户端应用程序。它提供了丰富的组件,包括文件上传...

    jQuery拖拽图片上传表单代码.zip

    用户将图片拖入此区域后,后台会通过AJAX异步提交文件,避免页面刷新,提高用户体验。 在实际应用中,为了安全和性能考虑,我们还需要处理一些额外的问题,例如: - 文件类型检查:限制用户只能上传特定类型的图片...

    jQuery form表单美化实例代码

    此外,jQuery还有许多插件可以进一步提升表单的用户体验,例如`jQuery UI`的Autocomplete插件可以实现输入框的自动补全,`jQuery Form Plugin`可以轻松处理表单提交,包括异步提交(AJAX)和文件上传。这些插件通常...

    JS实现表单多文件上传样式美化支持选中文件后删除相关项

    在本篇文章中,我们将探讨如何使用JavaScript实现表单多文件上传,并对上传界面进行美化处理。此外,我们还将实现一个功能,允许用户在选中文件后删除不想要的文件项。 ### 文件上传基础 文件上传功能主要通过HTML...

    HTML5超酷表单展示效果.zip

    2. **AJAX提交**:利用jQuery的`.ajax()`方法,可以实现无刷新的表单提交,提高用户体验。 3. **插件和库**:jQuery有许多与表单相关的插件,如validate.js用于表单验证,select2提供高级选择器效果,bootstrap的...

    JavaScript实现图片伪异步上传过程解析

    - 首先,由于Ajax无法直接处理文件上传,我们需要使用同步的表单提交。但是为了不中断用户的交互,我们可以将表单的提交目标设置为一个隐藏的`&lt;iframe&gt;`,这样在上传过程中用户界面不会刷新。 - 表单的`enctype`...

    上传头像前端模板,很简单,下载即用

    - 表单提交或异步上传:利用XMLHttpRequest或Fetch API实现文件的异步上传,通常配合Ajax技术,避免页面刷新。 - 错误处理:如果上传过程中出现问题,如文件格式不正确、网络错误等,JavaScript可以提供相应的提示...

    JQuery框架软件包下载

    这个插件允许开发者轻松地实现Ajax提交表单,避免了页面刷新,提供了更好的用户体验。Ajax(Asynchronous JavaScript and XML)是一种创建动态网页的技术,通过在后台与服务器进行少量数据交换,使得网页可以部分...

    最新Python3.5零基础+高级+完整项目(28周全)培训视频学习资料

    ajax操作-伪ajax(iframe) ajax操作-时机选择 文件上传(3种方式)-1 文件上传-时机选择及预览-2 图片验证码 KindEditor基本使用和文件操作 作业 第25周 今日内容概要 博客系统示例预览 组合搜索组件 JSONP跨域...

    Laravel框架+Blob实现的多图上传功能示例

    传统的多图上传流程通常是用户选择图片,文件上传到服务器,然后返回存储路径,最后在用户提交表单时将这些路径信息保存到数据库。然而,如果用户在上传图片后取消了表单提交,服务器上已经存在的图片资源就会造成...

    jquery.uploader

    1. **伪 AJAX 上传**:jQuery Uploader 通过模拟 AJAX 请求,使得文件上传过程在后台进行,不会中断页面的其他操作,用户可以继续浏览页面而不必等待文件上传完成。 2. **进度条显示**:支持实时显示文件上传进度,...

    易点内容管理系统 DianCMS v6.4.0 ACC版.zip

    【增加】字段类型为表单类型时,增加文件上传和多行文本框 【增加】为ckeditor编辑器增加多图上传按钮 【增加】采集时,字段内容为空时,可以不采集此条内容。 【修复】百度编辑器上传漏洞。 【增加】栏目自由...

    易点内容管理系统 DianCMS v6.4.0 SQL版.zip

    【增加】字段类型为表单类型时,增加文件上传和多行文本框 【增加】为ckeditor编辑器增加多图上传按钮 【增加】采集时,字段内容为空时,可以不采集此条内容。 【修复】百度编辑器上传漏洞。 【增加】栏目自由...

    文章管理系统

    5.加强前台提交表单信息的安全过滤 6.修复几个细节BUG 2014年04月30日 V2.84更新包(推荐升级) 1.修复安装向导配置时对数据库字符过滤不严存在入侵漏洞 2.修复后台模板样式文件字符过滤不严存在入侵漏洞 3.修复...

    4.zip_JavaScript/JQuery_Java_

    此外,还会处理表单提交事件,使用AJAX将表单数据无刷新地发送到服务器进行审核。 总的来说,这个项目展示了如何结合JavaScript和JQuery库,创建一个功能完善的、用户体验良好的企业开户审核表单。通过合理的DOM...

    1-formularz-html5

    8. **表单数据接口**:`FormData`对象用于处理表单数据,可以用于AJAX提交,方便构建异步提交的表单。 9. **Geolocation API**:HTML5的地理位置API允许获取用户的地理位置信息,可以在注册或联系人表单中加入位置...

Global site tag (gtag.js) - Google Analytics