axios实现简单文件上传功能


Posted in Javascript onSeptember 25, 2019

本文实例为大家分享了axios实现文件上传功能的具体代码,供大家参考,具体内容如下

前台页面:

引入axios js文件

<script src="https://unpkg.com/axios/dist/axios.min.js"></script>

HTML:

<input type="file" name="img"/>
<br>
<span οnclick="upload()">上传图片</span>

JS:

function upload() {
 alert("上传")
 let file = document.getElementsByName('img')[0].files[0];
 
 let formData = new FormData();
 formData.append("uploadFile",file,file.name);
 
 const config = {
 headers: { "Content-Type": "multipart/form-data;boundary="+new Date().getTime() }
 };
 
 axios
 .post("/file/upload",formData,config)
 .then(function (response) {
  console.log(response);
 })
 .catch(function (error) {
  console.log(error);
 });
}

后台接收:

@PostMapping(value = "/upload")
public String upload(HttpServletRequest request){
 logger.info("开始上传……");
 
 MultipartHttpServletRequest servletRequest = (MultipartHttpServletRequest) request;
 Map<String, MultipartFile> fileMap = servletRequest.getFileMap();
 for (Map.Entry entry : fileMap.entrySet()) {
 logger.info("name : {}",entry.getKey());
 MultipartFile multipartFile = (MultipartFile) entry.getValue();
 try {
  FileUtil.writeFile(multipartFile.getInputStream(),path+"/12_"+multipartFile.getOriginalFilename());
 } catch (IOException e) {
  e.printStackTrace();
 }
 }
 return "{'result':'OK'}";
}
 
 
@RequestMapping(value = "/uploadII")
public String uploadII(@RequestParam("uploadFile") MultipartFile uploadFile){
 logger.info("upload : {}",uploadFile);
 try {
 InputStream inputStream = uploadFile.getInputStream();
 String originalFilename = uploadFile.getOriginalFilename();
 logger.info("file : {}",originalFilename);
 FileUtil.writeFile(inputStream,path+"/"+originalFilename);
 } catch (IOException e) {
 e.printStackTrace();
 }
 return "{'result':'OK'}";
}

pox.xml:

<!-- 文件上传 -->
<dependency>
 <groupId>commons-fileupload</groupId>
 <artifactId>commons-fileupload</artifactId>
 <version>1.3</version>
</dependency>

注入CommonsMultipartResolver:

@Bean
public CommonsMultipartResolver initCommonsMultipartResolver(){
 CommonsMultipartResolver resolver = new CommonsMultipartResolver();
 resolver.setMaxUploadSize(104857600);
 resolver.setMaxInMemorySize(4096);
 return resolver;
}

GitHub:axios

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

Javascript 相关文章推荐
javascript 禁止复制网页
Jun 11 Javascript
使用UglifyJS合并/压缩JavaScript的方法
Mar 07 Javascript
JavaScript 实现类的多种方法实例
May 01 Javascript
javascript中call和apply的用法示例分析
Apr 02 Javascript
js实现仿京东2级菜单效果(带延时功能)
Aug 27 Javascript
jQuery解析json数据实例分析
Nov 24 Javascript
jQuery EasyUI之DataGrid使用实例详解
Jan 04 Javascript
jQuery+CSS实现简单切换菜单示例
Jul 27 Javascript
Vue.js组件通信的几种姿势
Oct 23 Javascript
Vue实现用户自定义字段显示数据的方法
Aug 28 Javascript
jQuery实现适用于移动端的跑马灯抽奖特效示例
Jan 18 jQuery
vue指令做滚动加载和监听等
May 26 Javascript
layer弹出层取消遮罩的方法
Sep 25 #Javascript
QML实现圆环颜色选择器
Sep 25 #Javascript
解决layer 关闭当前弹窗 关闭遮罩层 input值获取不到的问题
Sep 25 #Javascript
微信小程序实现一张或多张图片上传(云开发)
Sep 25 #Javascript
Layer组件多个iframe弹出层打开与关闭及参数传递的方法
Sep 25 #Javascript
layer 关闭指定弹出层的例子
Sep 25 #Javascript
layer关闭弹出窗口触发表单提交问题的处理方法
Sep 25 #Javascript
You might like
PHP中动态HTML的输出技术
2006/10/09 PHP
Laravel用户授权系统的使用方法示例
2018/09/16 PHP
PHP常用工具函数小结【移除XSS攻击、UTF8与GBK编码转换等】
2019/04/27 PHP
laravel框架学习笔记之组件化开发实现方法
2020/02/01 PHP
fix-ie5.js扩展在IE5下不能使用的几个方法
2007/08/20 Javascript
javascript 类定义的4种方法
2009/09/12 Javascript
jquery png 透明解决方案(推荐)
2010/08/21 Javascript
JavaScript中循环遍历Array与Map的方法小结
2016/03/12 Javascript
Javascript基础_标记文字的实现方法
2016/06/14 Javascript
AngularJS入门教程之数据绑定用法示例
2016/11/01 Javascript
NodeJs下的测试框架Mocha的简单介绍
2017/02/22 NodeJs
vue学习之mintui picker选择器实现省市二级联动示例
2017/10/12 Javascript
js时间戳与日期格式之间转换详解
2017/12/11 Javascript
10行代码实现微信小程序滑动tab切换
2018/12/28 Javascript
小程序测试后台服务的方法(ngrok)
2019/03/08 Javascript
微信小程序后台持续定位功能使用详解
2019/08/23 Javascript
深入浅析JavaScript中的in关键字和for-in循环
2020/04/20 Javascript
vuex实现购物车的增加减少移除
2020/06/28 Javascript
JS PHP字符串截取函数实现原理解析
2020/08/29 Javascript
python操作MySQL数据库的方法分享
2012/05/29 Python
python版本坑:md5例子(python2与python3中md5区别)
2017/06/20 Python
Python 实现简单的shell sed替换功能(实例讲解)
2017/09/29 Python
Python实现PS滤镜Fish lens图像扭曲效果示例
2018/01/29 Python
简单了解python filter、map、reduce的区别
2020/01/14 Python
Python调用Windows命令打印文件
2020/02/07 Python
解决pymysql cursor.fetchall() 获取不到数据的问题
2020/05/15 Python
Django --Xadmin 判断登录者身份实例
2020/07/03 Python
Stylenanda中文站:韩国一线网络服装品牌
2016/12/22 全球购物
Interflora澳大利亚:同日鲜花速递
2019/06/25 全球购物
研发工程师岗位职责
2014/04/28 职场文书
校园活动策划方案
2014/06/13 职场文书
先进员工事迹材料
2014/12/20 职场文书
有关水浒传的读书笔记
2015/06/25 职场文书
迎国庆主题班会
2015/08/17 职场文书
2015年成本会计工作总结
2015/10/14 职场文书
关于SpringBoot 使用 Redis 分布式锁解决并发问题
2021/11/17 Redis