RestTemplate 传输图片

阅读更多

使用RestTemplate 传输图片

public String addFood(String name, String desc, String price, String menu_category_id, MultipartFile[] files,

			
			String taste_ids,String language, String token) {

		Set tempFilePath = new HashSet<>();
		String postForObject = null;
		try {
			MultiValueMap params = new LinkedMultiValueMap();
			params.add("name", name);
			params.add("desc", desc);
			params.add("price", price);
			params.add("menu_category_id", menu_category_id);
			params.add("taste_ids", taste_ids);
			params.add("token", token);
			params.add("language", language);
			if (null != files && files.length > 0) {
				for(MultipartFile file : files){
					//生成临时的文件,完成传输后再删除
					File tempFile = new File( UUID.randomUUID().toString()+file.getOriginalFilename());
					tempFilePath.add(tempFile.getAbsolutePath());
					//file.transferTo(tempFile);
					FileUtils.copyInputStreamToFile(file.getInputStream(), tempFile);
					FileSystemResource fileSystemResource = new FileSystemResource(tempFile);
					params.add("files", fileSystemResource);
				}
			}
			String path = iCateringPahtService.getCateringPath() + "addFoodAPI";

			HttpHeaders headers = new HttpHeaders();
			headers.set("Content-Type", "multipart/form-data");
			HttpEntity> requestEntity = new HttpEntity>(params,headers);
			/*exchange = restTemplate.exchange(path, HttpMethod.POST, requestEntity,
					ResponseBean.class);*/
			postForObject = restTemplate.postForObject(path, requestEntity, String.class);

			
		} catch (Exception e) {
			
		}finally {
			//删除临时的文件
			if(null != tempFilePath && !tempFilePath.isEmpty()){
				for(String path : tempFilePath){
					File file = new File(path);
					if(file.exists()){
						file.delete();
					}
				}
			}
		}

		return postForObject;


	}

 

 

另一个controller接收即可

@RequestMapping(value="addFoodAPI",method=RequestMethod.POST)
	public String addFood(String name, String desc, String price, String menu_category_id, MultipartFile[] files, String taste_ids,String language, String token) {
		ResponseBean response = iCateringFoodService.addFood(name,desc,price,menu_category_id,files,taste_ids,language);
		return AESUtil.encrypResponseToString(response);
	}

 

 

 

 

 

你可能感兴趣的:(RestTemplate 传输图片)