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 相关文章推荐
js和as的稳定传值问题解决
Jul 14 Javascript
jQuery 设置 CSS 属性示例介绍
Jan 16 Javascript
easyui Draggable组件实现拖动效果
Aug 19 Javascript
jQuery实现的超酷苹果风格图标滑出菜单效果代码
Sep 16 Javascript
修复jQuery tablesorter无法正确排序的bug(加千分位数字后)
Mar 30 Javascript
关闭Vue计算属性自带的缓存功能方法
Mar 02 Javascript
前端axios下载excel文件(二进制)的处理方法
Jul 31 Javascript
教你使用vue-cli快速构建的小说阅读器
May 13 Javascript
如何实现js拖拽效果及原理解析
May 08 Javascript
vue 实现基础组件的自动化全局注册
Dec 25 Vue.js
Vue常用API、高级API的相关总结
Feb 02 Vue.js
JavaScript 反射学习技巧
Oct 16 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简单封装了一些常用JS操作
2007/02/25 PHP
PHP脚本中include文件出错解决方法
2008/11/20 PHP
PHP获取mysql数据表的字段名称和详细信息的方法
2014/09/27 PHP
PHP进程同步代码实例
2015/02/12 PHP
php实现SAE上使用storage上传与下载文件的方法
2015/06/29 PHP
PHP实现的oracle分页函数实例
2016/01/25 PHP
浅析Yii2缓存的使用
2016/05/10 PHP
php mysqli查询语句返回值类型实例分析
2016/06/29 PHP
如何让PHP编码更加好看利于阅读
2019/05/12 PHP
js 模式窗口(模式对话框和非模式对话框)的使用介绍
2014/07/17 Javascript
Node.js 学习笔记之简介、安装及配置
2015/03/03 Javascript
javascript常用的方法整理
2015/08/20 Javascript
Bootstrap分页插件之Bootstrap Paginator实例详解
2016/10/15 Javascript
js实现滑动到页面底部自动加载更多功能
2017/02/15 Javascript
vue中如何引入jQuery和Bootstrap
2017/04/10 jQuery
详解微信小程序Page中data数据操作和函数调用
2017/09/27 Javascript
vue2.0在没有dev-server.js下的本地数据配置方法
2018/02/23 Javascript
jQuery选择器之基本选择器用法实例分析
2019/02/19 jQuery
解决vue组件props传值对象获取不到的问题
2019/06/06 Javascript
vue基于better-scroll实现左右联动滑动页面
2020/06/30 Javascript
Python标准库os.path包、glob包使用实例
2014/11/25 Python
在Python中marshal对象序列化的相关知识
2015/07/01 Python
利用Python破解斗地主残局详解
2017/06/30 Python
python网络编程之多线程同时接受和发送
2019/09/03 Python
通过 Python 和 OpenCV 实现目标数量监控
2020/01/05 Python
解决pycharm编辑区显示yaml文件层级结构遇中文乱码问题
2020/04/27 Python
python中JWT用户认证的实现
2020/05/18 Python
关于tensorflow softmax函数用法解析
2020/06/30 Python
Python openpyxl模块实现excel读写操作
2020/06/30 Python
HTML5拖拉上传文件的简单实例
2017/01/11 HTML / CSS
法律工作求职自荐信
2013/10/31 职场文书
公积金转移接收函
2014/01/11 职场文书
师恩难忘教学反思
2014/04/27 职场文书
《哪吒之魔童降世》观后感:世上哪有随随便便的成功
2019/11/08 职场文书
教你用Python写一个植物大战僵尸小游戏
2021/04/25 Python
MyBatis 动态SQL全面详解
2021/10/05 MySQL