pom.xml
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.5.6</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpmime</artifactId>
<version>4.5.6</version>
</dependency>
Client
@PostMapping("/test")
@ResponseBody
private String gettesthttpclient1(MultipartFile file,String url,String target) throws IOException {
CloseableHttpClient httpclient = HttpClients.createDefault();
RequestConfig requestConfig = RequestConfig.custom()
.setConnectionRequestTimeout(10000)
.setConnectTimeout(5000)
.build();
HttpPost httpPost = new HttpPost(url);
MultipartEntityBuilder entityBuilder = MultipartEntityBuilder.create();
entityBuilder.setMode(HttpMultipartMode.BROWSER_COMPATIBLE);
entityBuilder.setCharset(Consts.UTF_8);
InputStream inputStream = file.getInputStream();
entityBuilder.addBinaryBody("file", inputStream, ContentType.DEFAULT_BINARY, file.getOriginalFilename());
entityBuilder.addTextBody("target", target, ContentType.create("text/plain", Charset.forName("UTF-8")));
httpPost.setEntity(entityBuilder.build());
httpPost.setConfig(requestConfig);
HttpResponse httpResponse = httpclient.execute(httpPost);
String flag = EntityUtils.toString(httpResponse.getEntity());
return flag;
}
server
@Controller
public class FileController {
private static final Logger logger = LoggerFactory.getLogger(FileController.class);
@PostMapping("/upload")
private String gettestRestTemplate(MultipartFile file, String target){
System.out.println("-------------------------");
if (file.isEmpty()) {
return "文件为空";
}
String fileName = file.getOriginalFilename();
logger.info("上传的文件名为:" + fileName);
String suffixName = fileName.substring(fileName.lastIndexOf("."));
logger.info("上传的后缀名为:" + suffixName);
String filePath = target;
File dest = new File(filePath + fileName);
if (!dest.getParentFile().exists()) {
dest.getParentFile().mkdirs();
}
try {
file.transferTo(dest);
return "上传成功";
} catch (IllegalStateException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return "上传失败";
}
POSTMAN