Untitled

mail@pastecode.io avatarunknown
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();
    }
}