Apache下的MultipartEntityBuilder 文件上传

来源:互联网 发布:java 方法上的泛型 编辑:程序博客网 时间:2024/06/03 15:59

MultipartEntityBuilder文件上传和下载

第一步在pom.xml文件中引入

<dependency>   <groupId>org.apache.httpcomponents</groupId>   <artifactId>httpclient</artifactId>   <version>4.5.2</version></dependency><dependency>   <groupId>org.apache.httpcomponents</groupId>   <artifactId>httpmime</artifactId>   <version>4.5.2</version></dependency>
访问文件服务器
emptypackage com.hsnn.medstgmini.util;import org.apache.http.HttpEntity;import org.apache.http.HttpResponse;import org.apache.http.client.ClientProtocolException;import org.apache.http.client.methods.HttpPost;import org.apache.http.entity.mime.MultipartEntityBuilder;import org.apache.http.impl.client.CloseableHttpClient;import org.apache.http.impl.client.HttpClientBuilder;import org.apache.http.util.EntityUtils;import org.springframework.beans.factory.annotation.Value;import org.springframework.stereotype.Component;import org.springframework.web.multipart.MultipartFile;import java.io.IOException;import java.util.List;import java.util.Map;/** * 多图片上传工具类 * @author fingertap * */@Componentpublic class MultiPicUploadUtil {@Value("${picupload.url}")private String picUploadUrl;//文件服务器访问地址/** * key作为表单属性名,value作为对应的文件,可以是集合 * @param inMap * @return * @throws Exception */public String invokeUpload(Map inMap,String pathName) throws Exception{HttpClientBuilder builder = HttpClientBuilder.create();CloseableHttpClient closeableHttpClient = builder.build();String newPicUploadurl=picUploadUrl+"?pathName="+pathName;HttpPost httpPost = new HttpPost(newPicUploadurl);MultipartEntityBuilder rqEntity = MultipartEntityBuilder.create();for(String key : inMap.keySet() ){List list = (List) inMap.get(key);if(null!=list&&list.size()>0){for(int i=0;i
文件服务的搭建放在了码云上,访问地址
https://git.oschina.net/wangzhezhiying/medicalstage.git
文件上传时访问的路径
@RequestMapping("toFileUpComp")@ResponseBodypublic Map toFileUpComp(HttpServletRequest request, ModelMap model) {Pagination page = new Pagination(this.getRequest());String projCode = (String) page.getConditions().get("projCode");String projName = (String) page.getConditions().get("projName");String colnName = (String) page.getConditions().get("colnName");String workID = (String) page.getConditions().get("workID");String type = (String) page.getConditions().get("type");String uuid = (String) page.getConditions().get("uuid");SysUser user = this.getSysUser();MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;MultiValueMap mulMap = multipartRequest.getMultiFileMap();//定义list进行接收file文件Map filemap=new HashedMap();List list=new ArrayList<>();for(String key:mulMap.keySet()){list=mulMap.get(key);filemap.put(key,list);}String compCodeName = user.getOrgId() + user.getName();//更新配置表数据Set mulSetAttr = mulMap.keySet();Iterator mulItAttr = mulSetAttr.iterator();String pathName = UUID.randomUUID().toString();while(mulItAttr.hasNext()) {String divId = mulItAttr.next();List temp = mulMap.get(divId);for(MultipartFile mul : temp) {StdAttachment std = new StdAttachment();String fileName = mul.getOriginalFilename();String fileType = fileName.substring(fileName.indexOf(".")+1);std.setAttrId(UUID.randomUUID().toString());std.setSysId("资质审核系统");if ("1".equals(type)) {std.setTargetTable("STD_COMP_APP");}if ("2".equals(type)) {std.setTargetTable("STD_GOODS_APP");std.setBidAttrId(uuid);}std.setTargetField(colnName);std.setOriginName(fileName);std.setSuffix(fileType);std.setName(pathName + getSuffix(fileName));std.setRelPath("//" + projCode + "(" + projName + ")" + "//" + compCodeName + "//");std.setSignId(workID);std.setDivId(divId);std.setProjCode(projCode);std.setCompanyId(user.getOrgId());stdAttachmentManager.add(std);}}Map message = new HashMap<>();//结果mapString pathNames="//" + projCode + "(" + projName + ")" + "//" + compCodeName+"//"+pathName;// 服务器存储文件夹路径try {String result=multiPicUploadUtil.invokeUpload(filemap,pathNames);message.put("msg", "上传成功!");message.put("success", true);}catch (Exception e){e.printStackTrace();message.put("msg", "上传失败!");message.put("success", true);}return message;}
注意:文件上传时,改动
1,文件上传时,文件的访问呢路径,及
@Value("${picupload.url}")private String picUploadUrl所指向的地址





阅读全文
0 0
原创粉丝点击