网站中文件的异步上传是个比较麻烦的问题,不过现在通过jquery 可以很容易的解决这个问题;

使用jquery2.1版本,较老版本不支持异步文件上传功能;

表单代码:

  1. <form id="fileUploadForm">
  2. <input type="file" name="file" class="imageUpload"/>
  3. <span id="commit">提交到服务器</span>
  4. </form>
  1. <form id="fileUploadForm">
  2. <input type="file" name="file" class="imageUpload"/>
  3. <span id="commit">提交到服务器</span>
  4. </form>
<form id="fileUploadForm">
<input type="file" name="file" class="imageUpload"/>
<span id="commit">提交到服务器</span>
</form>

创建一个表单,里面包含一个file input

脚本代码:

  1. function uploadFile() {
  2. //将表单封装为一个formData对象
  3. var formData = new FormData($('#fileUploadForm')[0]);
  4. $.ajax({
  5. url:'http://127.0.0.1:8080/image/',
  6. type:'POST',
  7. //将formData对象作为参数进行上传
  8. data:formData,
  9. contentType: false,
  10. processData: false,
  11. success:function (data) {
  12. //文件上传成功后的处理
  13. $('#showUploadContent').append('<div>name:'+data.name+'<br/>url:'+data.url+'<img src="http://192.168.1.107/'+data.url+'"></div>')
  14. }
  15. })
  16. }
  17. $(function () {
  18. //为提交按钮添加点击事件
  19. $('#commit').click(function () {
  20. uploadFile();
  21. })
  22. })
  1. function uploadFile() {
  2. //将表单封装为一个formData对象
  3. var formData = new FormData($('#fileUploadForm')[0]);
  4. $.ajax({
  5. url:'http://127.0.0.1:8080/image/',
  6. type:'POST',
  7. //将formData对象作为参数进行上传
  8. data:formData,
  9. contentType: false,
  10. processData: false,
  11. success:function (data) {
  12. //文件上传成功后的处理
  13. $('#showUploadContent').append('<div>name:'+data.name+'<br/>url:'+data.url+'<img src="http://192.168.1.107/'+data.url+'"></div>')
  14. }
  15. })
  16. }
  17. $(function () {
  18. //为提交按钮添加点击事件
  19. $('#commit').click(function () {
  20. uploadFile();
  21. })
  22. })
function uploadFile() {
//将表单封装为一个formData对象
var formData = new FormData($('#fileUploadForm')[0]);
$.ajax({
url:'http://127.0.0.1:8080/image/',
type:'POST',
//将formData对象作为参数进行上传
data:formData,
contentType: false,
processData: false,
success:function (data) {
//文件上传成功后的处理
$('#showUploadContent').append('<div>name:'+data.name+'<br/>url:'+data.url+'<img src="http://192.168.1.107/'+data.url+'"></div>')
}
})
}
$(function () {
//为提交按钮添加点击事件
$('#commit').click(function () {
uploadFile();
})
})

NOTE:提交按钮使用<button/> <input type="submit"/> 的情况下将会页面跳转,我使用的是<span/>元素:

<span id="commit" >提交到服务器</span>

这样进行文件上传就不会出现页面跳转,达到异步上传;

Jquery FormData文件异步上传 快速指南的更多相关文章

  1. struts1 & jquery form 文件异步上传

    1.概述 还在用struts1?是的,在地球的没写地方,落后的生产方式还在运转(老项目). 从 继承org.apache.struts.action.Action, 继承org.apache.stru ...

  2. jquery实现文件异步上传

    前言 这里用了2个JS插件,一个是Jquery原生js,我的版本是jquery-1.7.2.min.js,另一个是jquery.form.js.这个form.js 是关键,不可少哦.另外, 我的服务器 ...

  3. 【转】JQuery插件ajaxFileUpload 异步上传文件(PHP版)

    前几天想在手机端做个异步上传图片的功能,平时用的比较多的JQuery图片上传插件是Uploadify这个插件,效果很不错,但是由于手机不支持flash,所以不得不再找一个文件上传插件来用了.后来发现a ...

  4. JQuery插件ajaxFileUpload 异步上传文件(PHP版)

    太久没写博客了,真的是太忙了.善于总结,进步才会更快啊.不多说,直接进入主题. 前几天想在手机端做个异步上传图片的功能,平时用的比较多的JQuery图片上传插件是Uploadify这个插件,效果很不错 ...

  5. 文件的上传(表单上传和ajax文件异步上传)

    项目中用户上传总是少不了的,下面就主要的列举一下表单上传和ajax上传!注意: context.Request.Files不适合对大文件进行操作,下面列举的主要对于小文件上传的处理! 资源下载: 一. ...

  6. 普通文件的上传(表单上传和ajax文件异步上传)

    一.表单上传: html客户端部分: <form action="upload.ashx" method="post" enctype="mul ...

  7. MVC文件上传04-使用客户端jQuery-File-Upload插件和服务端Backload组件实现多文件异步上传

    本篇使用客户端jQuery-File-Upload插件和服务端Badkload组件实现多文件异步上传.MVC文件上传相关兄弟篇: MVC文件上传01-使用jquery异步上传并客户端验证类型和大小  ...

  8. 文件的上传(1)(表单上传和ajax文件异步上传)

    文件的上传(表单上传和ajax文件异步上传) 项目中用户上传总是少不了的,下面就主要的列举一下表单上传和ajax上传!注意: context.Request.Files不适合对大文件进行操作,下面列举 ...

  9. HTML5实现图片文件异步上传

    原文:HTML5实现图片文件异步上传 利用HTML5的新特点做文件异步上传非常简单方便,本文主要展示JS部分,html结构.下面的代码并未使用第三发库,如果有参照,请注意一些未展现出来的代码片段.我这 ...

随机推荐

  1. day18 11.复习

    其实以前写的每条SQL语句都是有事务的,因为它默认的事务是autocommit=on(自动事务).mysql的autocommit是on,oracle的autocommit是off.

  2. Uva1252 Twenty Questions

    Twenty Questions https://odzkskevi.qnssl.com/15b7eb4cd1f75f63cee3945b0b845e4f?v=1508411736 [题解] dp[S ...

  3. listView中的button控件获取索引

    1.在listitem中初始化button的时候,给该button添加一个setTag方法,将此时的索引值传进去,然后在button的onclick事件中调用view的getTag方法,即可将list ...

  4. 合唱队形 ( 双向LIS )

    #include <iostream> #include <stdio.h> #include <algorithm> using namespace std; ] ...

  5. Python多线程在爬虫中的应用

    题记:作为测试工程师经常需要解决测试数据来源的问题,解决思路无非是三种:(1)直接从生产环境拷贝真实数据 (2)从互联网上爬取数据 (3)自己用脚本或者工具造数据.前段时间,为了获取更多的测试数据,笔 ...

  6. Leetcode914.X of a Kind in a Deck of Cards卡牌分组

    给定一副牌,每张牌上都写着一个整数. 此时,你需要选定一个数字 X,使我们可以将整副牌按下述规则分成 1 组或更多组: 每组都有 X 张牌. 组内所有的牌上都写着相同的整数. 仅当你可选的 X > ...

  7. 基于docker的php调用基于docker的mysql数据库的方法

    1:建立基于docker的mysql,参考 Mac上将brew安装的MySql改用Docker执行 2:建立基于docker�php image 在当前目录,建立Dockerfile,内容如下 FRO ...

  8. JetBrains 系列软件--操作数据库+centos系统

    这系列软件贼强大! 能操作数据库 也能操作centos(linux)系统 由于这系列都有这两个功能,下面以最近常用的JetBrains PhpStorm 2017.2.1 x64来举例子: 一.操作数 ...

  9. 第一次作业:reading and prepare

    这个作业属于哪个课程 课程的链接 这个作业要求在哪里 作业要求的链接 我在这个课程的目标是 理解软件开发流程,更好的开发自己的软件 这个作业在哪个具体方面帮助我实现目标 对"工程" ...

  10. Ajax之基础

    版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/liu_yujie2011com/article/details/29812777         几 ...