axios实现简单文件上传功能

时间:2021-05-28

本文实例为大家分享了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:

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

GitHub:axios

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

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章