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 相关文章推荐
打印json对象的内容及JSON.stringify函数应用
Mar 29 Javascript
jQuery setTimeout()函数使用方法
Apr 07 Javascript
JQuery中使用Ajax赋值给全局变量失败异常的解决方法
Aug 18 Javascript
JavaScript实现三阶幻方算法谜题解答
Dec 29 Javascript
Javascript从数组中随机取出不同元素的两种方法
Sep 22 Javascript
JavaScript中如何使用cookie实现记住密码功能及cookie相关函数介绍
Nov 10 Javascript
JS仿京东移动端手指拨动切换轮播图效果
Apr 10 Javascript
underscore之function_动力节点Java学院整理
Jul 11 Javascript
vue工程全局设置ajax的等待动效的方法
Feb 22 Javascript
详解elementui之el-image-viewer(图片查看器)
Aug 30 Javascript
通过vue写一个瀑布流插件代码实例
Sep 07 Javascript
微信小程序自定义模态弹窗组件详解
Dec 24 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定义一个参数带有默认值的函数实例分析
2015/03/16 PHP
PHP的数组中提高元素查找与元素去重的效率的技巧解析
2016/03/03 PHP
详解Yii2 之 生成 URL 的方法
2017/06/16 PHP
jquery1.4后 jqDrag 拖动 不可用
2010/02/06 Javascript
js返回上一页并刷新代码整理
2012/12/21 Javascript
JQuery EasyUI 加载两次url的原因分析及解决方案
2014/08/18 Javascript
javascript继承机制实例详解
2014/11/20 Javascript
《JavaScript函数式编程》读后感
2015/08/07 Javascript
jQuery点击头像上传并预览图片
2017/02/23 Javascript
Vue.js tab实现选项卡切换
2017/05/16 Javascript
基于vue开发的在线付费课程应用过程
2018/01/25 Javascript
浅谈在Vue.js中如何实现时间转换指令
2019/01/06 Javascript
Vue父组件如何获取子组件中的变量
2019/07/24 Javascript
解决Vue中的生命周期beforeDestory不触发的问题
2020/07/21 Javascript
vue 子组件修改data或调用操作
2020/08/07 Javascript
[13:56]DAC2018 4.5SOLO赛决赛 MidOne vs Paparazi第一场
2018/04/06 DOTA
在Python中使用正则表达式的方法
2015/08/13 Python
使用Python下载歌词并嵌入歌曲文件中的实现代码
2015/11/13 Python
Flask web开发处理POST请求实现(登录案例)
2018/07/26 Python
pyspark.sql.DataFrame与pandas.DataFrame之间的相互转换实例
2018/08/02 Python
python3.6环境安装+pip环境配置教程图文详解
2019/06/20 Python
python flask框架实现重定向功能示例
2019/07/02 Python
对Python中 \r, \n, \r\n的彻底理解
2020/03/06 Python
Jupyter notebook快速入门教程(推荐)
2020/05/18 Python
详解Python直接赋值,深拷贝和浅拷贝
2020/07/09 Python
python中的插入排序的简单用法
2021/01/19 Python
纯CSS3实现Material Design效果
2017/03/09 HTML / CSS
详解利用canvas实现环形进度条的方法
2019/06/12 HTML / CSS
英国美术用品购物网站:Cass Art
2019/10/08 全球购物
幼师求职自荐信范文
2014/01/26 职场文书
运动会领导邀请函
2014/02/05 职场文书
社会工作专业求职信
2014/07/15 职场文书
2014年小学国庆节活动方案
2014/09/16 职场文书
酒店服务员岗位职责
2015/02/09 职场文书
2015年度女工工作总结
2015/10/22 职场文书
Java存储没有重复元素的数组
2022/04/29 Java/Android