/**
* 上传图片
* */
public static String postFile(String url ,MultipartFile file ) {
CloseableHttpClient client = HttpClients.createDefault();
// 创建httppost
HttpPost post = new HttpPost(url);
RequestConfig config = RequestConfig.custom().setSocketTimeout(30000).setConnectTimeout(20000).build();
post.setConfig(config);
File f = null;
try {
f = new File(file.getOriginalFilename());
inputStreamToFile(file.getInputStream(),f);
FileUtils.copyInputStreamToFile(file.getInputStream(), f);
} catch (IOException e) {
e.printStackTrace();
}
FileBody fileBody = new FileBody(f, ContentType.DEFAULT_BINARY);
MultipartEntityBuilder builder = MultipartEntityBuilder.create();
builder.setMode(HttpMultipartMode.BROWSER_COMPATIBLE);
builder.addPart("media", fileBody);
// 相当于 <input type="file" class="file" name="file">,匹配@RequestParam("file")
// .addPart()可以设置模拟浏览器<input/>的表单提交
HttpEntity entity = builder.build();
post.setEntity(entity);
String result = "";
try {
CloseableHttpResponse e = client.execute(post);
HttpEntity resEntity = e.getEntity();
if(entity != null) {
result = EntityUtils.toString(resEntity);
System.out.println("response content:" + result);
}
} catch (IOException var10) {
logger.error("请求解析验证码io异常",var10);
var10.printStackTrace();
}
return result;
}
public static void inputStreamToFile(InputStream ins, File file) {
try {
OutputStream os = new FileOutputStream(file);
int bytesRead = 0;
byte[] buffer = new byte[8192];
while ((bytesRead = ins.read(buffer, 0, 8192)) != -1) {
os.write(buffer, 0, bytesRead);
}
os.close();
ins.close();
} catch (Exception e) {
e.printStackTrace();
}
}