FormData对象用以将数据编译成键值对,以便用XMLHttpRequest来发送数据。其主要用于发送表单数据,但亦可用于发送带键数据(keyed data),而独立于表单使用。

jQuery Ajax 上传文件

通过 Ajax 向后台发送文件(包括图片)时,其参数类型属于对象。可以创建一个 FormData 对象,然后调用它的 append() 方法来添加字段。

例如:

var formData = new FormData();

formData.append("username", "cedric");
formData.append("tel", 15866666666); //数字123456会被立即转换成字符串 "15866666666" // HTML 文件类型input,由用户选择
formData.append("userfile", fileInputElement.files[0]);

实例应用

  • html代码
<div class="form-group">
<label for="upload_crowd_name" class="col-sm-2 control-label">人群名称</label>
<div class="col-sm-10">
<input type="text" class="form-control" id="upload_crowd_name" placeholder="请输入人群名称">
</div>
</div>
<div class="form-group">
<label for="upload_crowd_desc" class="col-sm-2 control-label">人群说明</label>
<div class="col-sm-10">
<textarea class="form-control" id="upload_crowd_desc" cols="20" rows="5"></textarea>
</div>
</div>
<div class="form-group">
<label for="crowd_file" class="col-sm-2 control-label">上传文件</label>
<div class="col-sm-10">
<input type="file" accept=".xlsx" id="crowd_file">
</div>
</div>
  • js代码
$('.submit').click(function () {
var crowd_name = $.trim($('#upload_crowd_name').val());
var crowd_desc = $.trim($('#upload_crowd_desc').val());
var crowd_file = $('#crowd_file')[0].files[0]; var formData = new FormData(); formData.append("crowd_file",$('#crowd_file')[0].files[0]);
formData.append("crowd_name", crowd_name);
formData.append("crowd_desc", crowd_desc); $.ajax({
url:'/upload/',
dataType:'json',
type:'POST',
async: false,
data: formData,
processData : false, // 使数据不做处理
contentType : false, // 不要设置Content-Type请求头
success: function(data){
console.log(data);
if (data.status == 'ok') {
alert('上传成功!');
} },
error:function(response){
console.log(response);
}
}); })

参考:

https://developer.mozilla.org/zh-CN/docs/Web/API/FormData/Using_FormData_Objects

Ajax 上传文件(input file FormData)的更多相关文章

  1. 通过Ajax方式上传文件(input file),使用FormData进行Ajax请求

    <script type="text/jscript"> $(function () { $("#btn_uploadimg").click(fun ...

  2. 上传文件 input file

    //-----前端文件------- form id="uploadForm" enctype="multipart/form-data"> <in ...

  3. jquery即时获取上传文件input file文件名

    截图:   代码: <input type="file" id="choosefile" style="display:none"/& ...

  4. Django框架 之 Form表单和Ajax上传文件

    Django框架 之 Form表单和Ajax上传文件 浏览目录 Form表单上传文件 Ajax上传文件 伪造Ajax上传文件 Form表单上传文件 html 1 2 3 4 5 6 7 <h3& ...

  5. ajax上传文件及nodeJS接收

    ajax文件上传需要用到FormData 官方介绍 FormData对象用以将数据编译成键值对,以便用XMLHttpRequest来发送数据.其主要用于发送表单数据,但亦可用于发送带键数据(keyed ...

  6. ajax上传文件 基于jquery form表单上传文件

    <script src="/static/js/jquery.js"></script><script> $("#reg-btn&qu ...

  7. koa2:通过Ajax方式上传文件,使用FormData进行Ajax请求

    koa2通过表单上传的网上很多,但通过Ajax方式上传文件,使用FormData进行Ajax请求,不好找. 参考了这个用base64上传图片的例子.https://github.com/Yuki-Mi ...

  8. python+selenium:解决上传文件<input type='file'>标签属性被css的visibility隐藏导致无法定位元素的问题

    要想上传文件,需要找到在HTML中<input type="file" />这个标签,有它就可以利用send_keys上传文件,不过这里的<input>元素 ...

  9. springMVC+jsp+ajax上传文件

    工作中遇到的小问题,做个笔记 实现springMVC + jsp + ajax 上传文件 HTML <body> <form id="myform" method ...

随机推荐

  1. hashlib 简单的登录例子

    hashlib例子: =============================================== import hashlib md5 = hashlib.md5() md5.up ...

  2. JAVAEE——SSH项目实战01:SVN介绍、eclipse插件安装和使用方法

    1 学习目标 1.掌握svn服务端.svn客户端.svn eclipse插件安装方法 2.掌握svn的基本使用方法 2 svn介绍 2.1 项目管理中的版本控制问题 通常软件开发由多人协作开发,如果对 ...

  3. selenium 校验文件下载成功

    转自: http://www.seleniumeasy.com/selenium-tutorials/verify-file-after-downloading-using-webdriver-jav ...

  4. Oracle EBS AR 贷项通知单核销取值

    SELECT cm.trx_number ,fnd_flex_ext.get_segs('SQLGL', 'GL#', gcc.chart_of_accounts_id, ad.code_combin ...

  5. sql server 存储过程的学习

    存储过程学习笔记 存储过程就是一条或者多条sql语句的集合,为了实现特定任务,而将一些需要多次调用的固定操作语句编写成程序段,这些程序段存储在服务器上,有数据库服务器通过程序来调用.T_SQL:存储过 ...

  6. systemd-analyze – 在Linux中查找系统启动性能统计信息

    您是否在使用 systemd 系统和服务管理器,并且您的 Linux 系统需要较长时间才能启动,或者您希望查看系统启动性能的报告? 如果是的话,你已经登陆了正确的地方. 在本文中,我们将向您展示如何使 ...

  7. jQuery表格排序(tablesorter)

    1.在html页面的head中引用 <script src="/static/Bootstrap/js/jquery/jquery.tablesorter.min.js"&g ...

  8. python 多进程和子进程1

    多进程的缓冲区 #多进程 process.py from multiprocessing import Process,current_process import time def func1(): ...

  9. C Programming vs. Java Programming

    Thing C Java type of language function oriented object oriented basic programming unit function clas ...

  10. Linux下搭建lnmp环境

    前提:假设阅读本文的读者已经拥有基本的linux使用技巧,能够解决系统安装问题,以及软件安装的技巧. 注意: 本文所涉及的主要安装包(需要下载使用的)安装包,在本文最后会给出百度云盘链接,需要使用的, ...