feat:upload file

This commit is contained in:
zzs 2024-11-07 17:36:42 +08:00
parent a370cf0873
commit 4cc03bc304

View File

@ -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");
}