您现在的位置是:网站首页> 编程资料编程资料

Axios和Jquery实现文件上传功能_jquery_

2023-05-24 350人已围观

简介 Axios和Jquery实现文件上传功能_jquery_

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

Jquery上传

jquery文件时,后端好像并没有经过SpringMVC处理,没有被封装成一个MultiPartFIle对象,可通过原生的Servlet API request.getInputStream()获取。至于为什么没被SpringMVC封装成MultipartFile对象目前还没有研究透彻。可能是请求内容类型没有设置成 multipart/form-data。下面是jquery上传文件的代码示例,文件名,文件大小等参数可通过拼在url后面使用request.getParameter()获取。

          Title 请上传图片:
@PostMapping("jqueryUpload")     public String jqueryUpload(HttpServletRequest request, MultipartFile file) throws Exception{         System.out.println(file);         String fileDesc = "D:\\2022\\" + request.getParameter("filename");         FileOutputStream outputStream = new FileOutputStream(fileDesc);         ServletInputStream inputStream = request.getInputStream();         byte[] bytes = new  byte[1024];         int line = inputStream.read(bytes);         while (line != -1){             outputStream.write(bytes,0,line);             line = inputStream.read(bytes);         }         inputStream.close();         outputStream.close();         return "success";     }

此时后台打印的multipartfile是null。后续会深入研究·······…

Axios上传

axios上传不同于jquery,axios将上传的二进制数据和其他参数封装在了FormData对象中,值得注意的是,此时的内容类型要改为multipart/form-data。

          Title 请上传图片:
@PostMapping("axiosUpload")     public String axiosUpload(HttpServletRequest request,MultipartFile file)throws Exception{         InputStream inputStream = file.getInputStream();         String fileDesc = "D:\\2022\\" + request.getParameter("filename");         FileOutputStream os = new FileOutputStream(fileDesc);         byte[] bytes = new  byte[1024];         int line = inputStream.read(bytes);         while (line != -1){             os.write(bytes,0,line);             line = inputStream.read(bytes);         }         inputStream.close();         os.close();         return "success";     }

感觉还是更喜欢axios这种,明确指定了内容类型并且经过了SpringMVC处理。

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

-六神源码网