Untitled
plain_text
2 months ago
1.4 kB
2
Indexable
Never
import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.databind.JsonSerializer; import com.fasterxml.jackson.databind.SerializerProvider; import com.fasterxml.jackson.databind.annotation.JsonSerialize; import java.io.File; import java.io.IOException; import java.nio.file.Files; import java.util.Base64; @JsonSerialize(using = FileSerializerWithContent.class) public class FileStorage { private File file; public File getFile() { return file; } public void setFile(File file) { this.file = file; } } public class FileSerializerWithContent extends JsonSerializer<FileStorage> { @Override public void serialize(FileStorage fileStorage, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException { jsonGenerator.writeStartObject(); jsonGenerator.writeStringField("fileName", fileStorage.getFile().getName()); jsonGenerator.writeStringField("filePath", fileStorage.getFile().getAbsolutePath()); // Read file content into a byte array byte[] fileContent = Files.readAllBytes(fileStorage.getFile().toPath()); // Encode the file content in base64 and include in JSON String base64Content = Base64.getEncoder().encodeToString(fileContent); jsonGenerator.writeStringField("fileContent", base64Content); jsonGenerator.writeEndObject(); } }