|
5 | 5 | @UtilityClass |
6 | 6 | public class FileUtils { |
7 | 7 |
|
8 | | - public StringBuilder createMultiPartBody(byte[] file, String boundary, String purpose, String contentType, |
9 | | - String fileName) { |
10 | | - var requestBody = new StringBuilder(); |
11 | | - requestBody.append("--").append(boundary).append("\r\n"); |
12 | | - requestBody.append("Content-Disposition: form-data; name=\"purpose\"\r\n\r\n"); |
13 | | - requestBody.append(purpose).append("\r\n"); |
14 | | - requestBody.append("--").append(boundary).append("\r\n"); |
15 | | - requestBody.append("Content-Disposition: form-data; name=\"file\"; filename=\"").append(fileName) |
16 | | - .append("\"\r\n"); |
17 | | - requestBody.append("Content-Type: ").append(contentType).append("\r\n\r\n"); |
18 | | - requestBody.append(new String(file)).append("\r\n"); |
19 | | - requestBody.append("--").append(boundary).append("--").append("\r\n"); |
| 8 | + public byte[] createMultiPartBody(byte[] fileBytes, String boundary, String purpose, String mimeType, |
| 9 | + String fileName) { |
20 | 10 |
|
21 | | - return requestBody; |
| 11 | + StringBuilder bodyBuilder = new StringBuilder(); |
| 12 | + bodyBuilder.append("--").append(boundary).append("\r\n") |
| 13 | + .append("Content-Disposition: form-data; name=\"file\"; filename=\"").append(fileName).append("\"\r\n") |
| 14 | + .append("Content-Type: ").append(mimeType).append("\r\n\r\n"); |
| 15 | + |
| 16 | + byte[] bodyStart = bodyBuilder.toString().getBytes(); |
| 17 | + bodyBuilder = new StringBuilder(); |
| 18 | + bodyBuilder.append("\r\n--").append(boundary).append("\r\n") |
| 19 | + .append("Content-Disposition: form-data; name=\"purpose\"\r\n\r\n") |
| 20 | + .append(purpose).append("\r\n") |
| 21 | + .append("--").append(boundary).append("--\r\n"); |
| 22 | + byte[] bodyEnd = bodyBuilder.toString().getBytes(); |
| 23 | + |
| 24 | + byte[] multipartBody = new byte[bodyStart.length + fileBytes.length + bodyEnd.length]; |
| 25 | + System.arraycopy(bodyStart, 0, multipartBody, 0, bodyStart.length); |
| 26 | + System.arraycopy(fileBytes, 0, multipartBody, bodyStart.length, fileBytes.length); |
| 27 | + System.arraycopy(bodyEnd, 0, multipartBody, bodyStart.length + fileBytes.length, bodyEnd.length); |
| 28 | + |
| 29 | + return multipartBody; |
22 | 30 | } |
23 | 31 | } |
0 commit comments