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 相关文章推荐
超清晰的document对象详解
Feb 27 Javascript
Jquery插件之打造自定义的select标签
Nov 30 Javascript
js使用for循环与innerHTML获取选中tr下td值
Sep 26 Javascript
javascript实现英文首字母大写
Apr 23 Javascript
JavaScript实现经典排序算法之插入排序
Dec 28 Javascript
vue-cli如何引入bootstrap工具的方法
Oct 19 Javascript
基于node打包可执行文件工具_Pkg使用心得分享
Jan 24 Javascript
浅谈Vue.js路由管理器 Vue Router
Aug 16 Javascript
微信小程序swiper实现滑动放大缩小效果
Nov 15 Javascript
详解vue为什么要求组件模板只能有一个根元素
Jul 22 Javascript
整理 node-sass 安装失败的原因及解决办法(小结)
Feb 19 Javascript
vue 页面回退mounted函数不执行的解决方案
Jul 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学习 运算符与运算符优先级
2008/06/15 PHP
PHP数组排序函数合集 以及它们之间的联系分析
2013/06/27 PHP
PHP使用mysql_fetch_object从查询结果中获取对象集的方法
2015/03/18 PHP
php实现随机显示图片方法汇总
2015/05/21 PHP
php上传图片并压缩的实现方法
2015/12/22 PHP
php 使用fopen函数创建、打开文件详解及实例代码
2016/09/24 PHP
PHP常见的几种攻击方式实例小结
2019/04/29 PHP
Javascript this关键字使用分析
2008/10/21 Javascript
js select常用操作控制代码
2010/03/16 Javascript
用jQuery实现一些导航条切换,显示隐藏的实例代码
2013/06/08 Javascript
js跨域访问示例(客户端/服务端)
2014/05/19 Javascript
为JS扩展Array.prototype.indexOf引发的问题及解决办法
2015/01/21 Javascript
Jquery 分页插件之Jquery Pagination
2015/08/25 Javascript
AngularJs动态加载模块和依赖注入详解
2016/01/11 Javascript
jQuery实现的简单拖拽功能示例
2016/09/13 Javascript
JS动态计算移动端rem的解决方案
2016/10/14 Javascript
webpack入门+react环境配置
2017/02/08 Javascript
js每隔两秒输出数组中的一项(实例)
2017/05/28 Javascript
webpack配置sass模块的加载的方法
2017/07/30 Javascript
jQuery实现获取form表单内容及绑定数据到form表单操作分析
2018/07/03 jQuery
Windows下安装 node 的版本控制工具 nvm
2020/02/06 Javascript
浅析 Vue 3.0 的组装式 API(一)
2020/08/31 Javascript
Python多进程并发(multiprocessing)用法实例详解
2015/06/02 Python
Python中的深拷贝和浅拷贝详解
2015/06/03 Python
用python3 urllib破解有道翻译反爬虫机制详解
2019/08/14 Python
关于jupyter打开之后不能直接跳转到浏览器的解决方式
2020/04/13 Python
前端canvas水印快速制作(附完整代码)
2019/09/19 HTML / CSS
巧用HTML5给按钮背景设计不同的动画简单实例
2016/08/09 HTML / CSS
linux面试题参考答案(1)
2016/01/22 面试题
学生会主席就职演讲稿
2014/01/14 职场文书
计算机科学系职业生涯规划书
2014/03/08 职场文书
工作总结与自我评价
2014/09/18 职场文书
承诺函格式模板
2015/01/21 职场文书
党员评议自我评价
2015/03/03 职场文书
部门经理助理岗位职责
2015/04/13 职场文书
单位综合评价意见
2015/06/05 职场文书