JavaScript使用Ajax上传文件的示例代码


Posted in Javascript onAugust 10, 2017

本文介绍了JavaScript使用Ajax上传文件的示例代码,分享给大家,具体如下:

实现文件的上传主要有两种方式:

使用form表单提交上传

html代码如下:

<form id="uploadForm" enctype="multipart/form-data">
  <input id="file" type="file" name="file"/>
  <button id="upload" type="button">上传</button>
</form>

此时的JavaScript代码如下:

var formData = new FormDate($('#uploadForm')[0]);

 $.ajax({
        url: 'http://10.10.2.254:8080/file/associateupload',
        type: 'POST',
        cache: false,
        data: formData,
        processData: false,
        contentType: false,
        success:function(res){
            console.log(res);
        }
    });

需要注意:

  1. processData设置为false。因为data值是FormData对象,不需要对数据做处理。
  2. <form>标签添加enctype="multipart/form-data"属性。
  3. cache设置为false,上传文件不需要缓存。
  4. contentType设置为false。因为是由<form>表单构造的FormData对象,且已经声明了属性enctype="multipart/form-data",所以这里设置为false。

使用FormData对象添加字段方式上传文件

html代码如下:

<div id="uploadDiv">
  <input id="file" type="file"/>
  <button id="upload" type="button">上传</button>
</div>

JavaScript实现如下:

var formData = new FormData();
formData.append('file', $('#file')[0].files[0]);
$.ajax({
  url: '/upload',
  type: 'POST',
  cache: false,
  data: formData,
  processData: false,
  contentType: false,
  success:function(res){
     console.log(res);
  }

这里有几处不一样:

  • append()的第二个参数应是文件对象,即$('#file')[0].files[0]。contentType也要设置为false。
  • 从代码$('#file')[0].files[0]中可以看到一个<input type="file">标签能够上传多个文件,只需要在<input type="file">里添加multiple或multiple="multiple"属性。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
单击复制文字兼容各浏览器的完美解决方案
Jul 04 Javascript
JS求平均值的小例子
Nov 29 Javascript
浅析Node在构建超媒体API中的作用
Jul 30 Javascript
z-blog SyntaxHighlighter 长代码无法换行解决办法(jquery)
Nov 16 Javascript
使用jQuery管理选择结果
Jan 20 Javascript
纯css实现窗户玻璃雨滴逼真效果
Aug 23 Javascript
浅析Node.js 中 Stream API 的使用
Oct 23 Javascript
js实现跨域的几种方法汇总(图片ping、JSONP和CORS)
Oct 25 Javascript
如何实现星星评价(jquery.raty.js插件)
Dec 21 Javascript
vue脚手架搭建项目的兼容性配置详解
Jul 17 Javascript
vue中created和mounted的区别浅析
Aug 13 Javascript
通过GASP让vue实现动态效果实例代码详解
Nov 24 Javascript
jquery对table做排序操作的实例演示
Aug 10 #jQuery
基于JavaScript实现飘落星星特效
Aug 10 #Javascript
提高Node.js性能的应用技巧分享
Aug 10 #Javascript
bootstrap table实现x-editable的行单元格编辑及解决数据Empty和支持多样式问题
Aug 10 #Javascript
纯js实现页面返回顶部的动画(超简单)
Aug 10 #Javascript
基于daterangepicker日历插件使用参数注意的问题
Aug 10 #Javascript
通过示例彻底搞懂js闭包
Aug 10 #Javascript
You might like
php第一次无法获取cookie问题处理
2014/12/15 PHP
thinkPHP中验证码的简单使用方法
2015/12/26 PHP
php中10个不同等级压缩优化图片操作示例
2016/11/14 PHP
PHP预定义超全局数组变量小结
2018/08/20 PHP
JS 添加网页桌面快捷方式的代码详细整理
2012/12/27 Javascript
jquery checkbox实现单选小例
2013/11/27 Javascript
document节点对象的获取方式示例介绍
2013/12/24 Javascript
WEB前端设计师常用工具集锦
2014/12/09 Javascript
jquery中checkbox全选失效的解决方法
2014/12/26 Javascript
jQuery中andSelf()方法用法实例
2015/01/08 Javascript
JavaScript中反正弦函数Math.asin()的使用简介
2015/06/14 Javascript
图片旋转、鼠标滚轮缩放、镜像、切换图片js代码
2020/12/13 Javascript
通过正则表达式获取url中参数的简单实现
2016/06/07 Javascript
轻松掌握JavaScript中介者模式
2016/08/26 Javascript
webpack常用配置项配置文件介绍
2016/11/07 Javascript
headjs实现网站并行加载但顺序执行JS
2016/11/29 Javascript
自动适应iframe右边的高度
2016/12/22 Javascript
js实现密码强度检验
2017/01/15 Javascript
angular2+nodejs实现图片上传功能
2017/03/27 NodeJs
js canvas实现擦除效果示例代码
2017/04/26 Javascript
JavaScript 通过Ajax 动态加载CheckBox复选框
2017/08/31 Javascript
JS实现瀑布流布局
2017/10/21 Javascript
JS高阶函数原理与用法实例分析
2019/01/15 Javascript
详解Vue中CSS样式穿透问题
2019/09/12 Javascript
nuxt 自定义 auth 中间件实现令牌的持久化操作
2020/11/05 Javascript
探究数组排序提升Python程序的循环的运行效率的原因
2015/04/01 Python
Python最基本的数据类型以及对元组的介绍
2015/04/14 Python
用python写个自动SSH登录远程服务器的小工具(实例)
2017/06/17 Python
详解关于Django中ORM数据库迁移的配置
2018/10/08 Python
python训练数据时打乱训练数据与标签的两种方法小结
2018/11/08 Python
雪花秀美国官方网站:韩国著名草本护肤化妆品品牌
2016/10/19 全球购物
介绍一下HDLC(High-Level Data Link Control)高层数据链路协议
2012/01/21 面试题
高一物理教学反思
2014/01/24 职场文书
药店主任岗位责任制
2014/02/10 职场文书
2015年司机工作总结
2015/04/23 职场文书
聘任书的格式及模板
2019/10/28 职场文书