From 4cc03bc304117022a11485e2534e2fbe0d216e12 Mon Sep 17 00:00:00 2001 From: zzs Date: Thu, 7 Nov 2024 17:36:42 +0800 Subject: [PATCH] feat:upload file --- .../crm/module/crm/service/ProxyService.java | 34 ++++++++++++------- 1 file changed, 21 insertions(+), 13 deletions(-) diff --git a/ensign-module-crm/ensign-module-crm-biz/src/main/java/com/ensign/crm/module/crm/service/ProxyService.java b/ensign-module-crm/ensign-module-crm-biz/src/main/java/com/ensign/crm/module/crm/service/ProxyService.java index af1d213..0abfc0d 100644 --- a/ensign-module-crm/ensign-module-crm-biz/src/main/java/com/ensign/crm/module/crm/service/ProxyService.java +++ b/ensign-module-crm/ensign-module-crm-biz/src/main/java/com/ensign/crm/module/crm/service/ProxyService.java @@ -13,10 +13,11 @@ import org.apache.http.HttpEntity; import org.apache.http.HttpResponse; import org.apache.http.client.HttpClient; import org.apache.http.client.config.RequestConfig; -import org.apache.http.client.methods.*; +import org.apache.http.client.methods.HttpPost; import org.apache.http.entity.StringEntity; -import org.apache.http.entity.mime.MultipartEntityBuilder; -import org.apache.http.entity.mime.content.FileBody; +import org.apache.http.entity.mime.HttpMultipartMode; +import org.apache.http.entity.mime.MultipartEntity; +import org.apache.http.entity.mime.content.InputStreamBody; import org.apache.http.impl.client.CloseableHttpClient; import org.apache.http.impl.client.DefaultHttpClient; import org.apache.http.impl.client.HttpClients; @@ -39,9 +40,13 @@ import javax.annotation.Resource; import javax.servlet.ServletOutputStream; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; -import java.io.*; +import java.io.ByteArrayOutputStream; +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; import java.net.URI; import java.net.URISyntaxException; +import java.nio.charset.Charset; import java.nio.file.Path; import java.nio.file.Paths; import java.util.*; @@ -184,15 +189,13 @@ public class ProxyService { URI newUri = new URI(target); CloseableHttpClient httpClient = HttpClients.createDefault(); HttpPost httpPost = new HttpPost(newUri); - MultipartEntityBuilder builder = MultipartEntityBuilder.create(); - FileBody fileBody = new FileBody(transferToFile(file)); - builder.addPart("file", fileBody); - HttpEntity multipartEntity = builder.build(); - httpPost.setEntity(multipartEntity); - Header[] requestHeader = httpPost.getAllHeaders(); - for (Header header : requestHeader) { - log.info("request Header: {}: {}", header.getName(), header.getValue()); - } + MultipartEntity builder = new MultipartEntity(HttpMultipartMode.BROWSER_COMPATIBLE, "----WebKitFormBoundaryBHp47SjGMxpHX0X6--", Charset.forName("UTF-8")); +// FileBody fileBody = new FileBody(transferToFile(file)); +// builder.addPart("file", fileBody); + File transferToFile = transferToFile(file); + builder.addPart("file", new InputStreamBody(new FileInputStream(transferToFile), file.getOriginalFilename())); + httpPost.addHeader("Content-Type", "multipart/form-data; boundary=----WebKitFormBoundaryBHp47SjGMxpHX0X6--"); + httpPost.setEntity(builder); HttpResponse kResponse = httpClient.execute(httpPost); Header[] headers = kResponse.getAllHeaders(); for (Header header : headers) { @@ -205,6 +208,11 @@ public class ProxyService { log.info("receive json response: {}", jsonStr); JSONObject jsonObject = JSON.parseObject(jsonStr); + + Header[] requestHeader = httpPost.getAllHeaders(); + for (Header header : requestHeader) { + log.info("request Header: {}: {}", header.getName(), header.getValue()); + } if (jsonObject.containsKey("url")) { return jsonObject.getString("url"); }