数组—如何将postgres中存储的图像的图像url插入到spring引导模型中

fzwojiic  于 2021-07-14  发布在  Java
关注(0)|答案(1)|浏览(262)

我已经建立了一个应用程序与SpringBootGradleKotlin后端,可以存储和上传多部分文件到postgres数据库。数据存储在字节数组中。到目前为止一切正常。
现在,我想添加一个图像url,使其在json对象中可用,以便以后获取它并在客户端显示它,就像unsplash上的一样。
图像URL

"imageURL": "https://xyz.jpg"

文件模型

@Entity
@Table(name = "file")
data class File(
    @Id
    val id: UUID = UUID.randomUUID(),
    val createdAt: LocalDateTime = LocalDateTime.now(),
    var updatedAt: LocalDateTime = LocalDateTime.now(),
    var likes: Int = 0,
    var likedByUser: Boolean = false,
    var description: String = "",
    val downloadLink: URI = URI("https://unsplasy-backend.herokuapp.com/files/download/$id"),
    var name: String = "",
    var type: String = "",

    @Basic(fetch = FetchType.LAZY)
    private val data: ByteArray = byteArrayOf(),

    val imageURL: TODO = "TODO"
)

商店

fun store(file: MultipartFile): File {
        val fileName = file.originalFilename.toString()
        val fileToSave = File(
            name = fileName,
            type = file.contentType.toString(),
            data = file.bytes
        )

        return fileRepository.save(fileToSave)
    }
qxgroojn

qxgroojn1#

在阅读了上面的建议后,我想到了这一点,它的工作。控制器更新

@GetMapping("/files/image/{id}")
    fun displayImage(@PathVariable id: UUID, response: HttpServletResponse) {
        val file = fileService.getFile(id)
        val data = fileService.getData(file)
        response.contentType = file.type
        response.outputStream.write(data)
        response.outputStream.close()
    }

文件模型更新

val imageURL: URL = URL("https://unsplasy-backend.herokuapp.com/files/image/$id"),

相关问题