我是靠谱客的博主 难过摩托,最近开发中收集的这篇文章主要介绍使用SpringMvc的CommonsMultipartResolver上传文件(效率很高),觉得挺不错的,现在分享给大家,希望可以做个参考。
概述
1.springmvc.xml中上传配置:
<!-- 多部分文件上传 -->
<bean id="multipartResolver"
class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<property name="maxUploadSize" value="104857600" />
<property name="defaultEncoding" value="UTF-8"></property>
</bean>
2.控制器(Controller)中接收请求的代码
/**
* @Description 上传图片
* @Author 刘俊重
* @Date 2017/6/12
*/
@IgnoreAuth
@PostMapping("uploadImage")
@ResponseBody
public Out uploadImage( HttpServletRequest request) throws IOException{
// 将当前上下文初始化给 CommonsMutipartResolver (多部分解析器)
CommonsMultipartResolver multipartResolver = new CommonsMultipartResolver(request.getSession().getServletContext());
multipartResolver.setDefaultEncoding("utf-8"); //设置编码
String res = null;
// 检查form中是否有enctype="multipart/form-data"
if(multipartResolver.isMultipart(request)) {
// 将request变成多部分request
MultipartHttpServletRequest multiRequest = (MultipartHttpServletRequest) request;
// 获取multiRequest中的所有文件名
Iterator<String> iter = multiRequest.getFileNames();
while(iter.hasNext()) {// 一次性遍历所有文件
MultipartFile file = multiRequest.getFile(iter.next());
if(file != null) {
String name = FileUtil.getOSSFile(file);
InputStream input = file.getInputStream();
OSSClient client = ossFactory.getClient();
OSSUtil.putObject(input,file.getSize(), client, SystemVar.OSS_BUCKET, name);
res = SystemVar.OSS_URL+name;
}
}
}
return Out.ok().put("path",res);
}
这里上传使用的是阿里OSS,上传过程不再写,上传成功之后返回uri,拼接域名生成url返回给前端即可。当然需要注意的是,前端的请求”Content-Type”: “multipart/form-data”。
最后
以上就是难过摩托为你收集整理的使用SpringMvc的CommonsMultipartResolver上传文件(效率很高)的全部内容,希望文章能够帮你解决使用SpringMvc的CommonsMultipartResolver上传文件(效率很高)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复