controller层
@Controller
@RequestMapping("/file/")
public class UploadController {
private static final Logger logger = LoggerFactory.getLogger(UploadController.class);
@Autowired
private UploadService fileService;
@RequestMapping(value = "uploadFile", method = RequestMethod.POST)
@ResponseBody
//上传图片
public Map upLoad(@RequestPart(value = "upload_image", required = false) MultipartFile[] files, HttpServletRequest request, HttpServletResponse response) {
Map resultMap = Maps.newHashMap();
String path = request.getSession().getServletContext().getRealPath("upload");
String targetFileName = null;
int success = 0;
String[] url = new String[files.length];
if (files != null) {
for (int i = 0; i < files.length; i++) {
targetFileName = fileService.upload(files[i], path);
if (!StringUtils.isBlank(targetFileName)) {
success++;
url[i] = PropertiesUtil.getProperty("ftp.server.http.prefixBack") + targetFileName;
}
}
}
resultMap.put("success", true);
resultMap.put("msg", "成功上传" + success + "图片");
resultMap.put("file_path", url);
response.addHeader("Access-Control-Allow-Headers", "X-File-Name");
return resultMap;
}
}
服务调用feign层
@FeignClient(name = "uploadFile-service",configuration = MultipartSupportConfig.class)
@Component
public interface UploadFeign {
@RequestMapping(value = "/file/uploadFile", method = RequestMethod.POST,consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
@ResponseBody
//上传图片
public Map upLoad(@RequestPart(value = "upload_image", required = false) MultipartFile[] files) ;
}
在这里插入代码片
服务调用配置类
@Configuration
public class MultipartSupportConfig {
@Autowired
private ObjectFactory<HttpMessageConverters> messageConverters;
@Bean
public Encoder feignFormEncoder() {
return new SpringFormEncoder(new SpringEncoder(messageConverters));
}
}
调用服务
@RestController
@RequestMapping("/file/")
public class UploadController {
@Autowired
UploadFeign uploadFeign;
@RequestMapping(value = "uploadFile", method = RequestMethod.POST)
@ResponseBody
//上传图片
public Map upLoad(@RequestPart(value = "upload_image", required = false) MultipartFile[] files){
return uploadFeign.upLoad(files);
} ;
}