gpt4 book ai didi

jsf - 如何从 p :fileUpload as BLOB in MySQL? 插入上传的图像

转载 作者:行者123 更新时间:2023-12-03 11:30:43 27 4
gpt4 key购买 nike

如何在 MySQL 中将 p:fileUpload 上传的图像插入为 BLOB?

@Lob
@Column(name = "photo")
private byte[] photo;

在 XHTML 页面中,我写了 this :
<p:inputText value="#{condidat.condidat.photo}" >
<p:fileUpload fileUploadListener="#{fileUploadController.handleFileUpload}"
allowTypes="*.jpg;*.png;*.gif;" description="Images"/>
</p:inputText>

如何将上传文件的值检索为 byte[] ?

最佳答案

您可以通过FileUploadEvent获取上传的文件内容.在 PrimeFaces 4.x 中使用 Apache Commons FileUpload,或者在 PrimeFaces 5.x 中使用上下文参数 primefaces.UPLOADER设置为 commons ,您可以使用 UploadedFile#getContents()获取上传的文件为 byte[] .

public void handleFileUpload(FileUploadEvent event) {
byte[] content = event.getFile().getContents();
// ...
}

在带有上下文参数 primefaces.UPLOADER 的 PrimeFaces 5.x 中不存在或设置为 autonative在使用 JSF 2.2 时,然后 getContents()将返回 null因为那是 not implemented in NativeUploadedFile implementation .使用 UploadedFile#getInputStream()相反,然后 read bytes from it, e.g. with help of commons IO .
public void handleFileUpload(FileUploadEvent event) {
byte[] content = IOUtils.toByteArray(event.getFile().getInputstream());
// ...
}

最后,只需设置这个 byte[]在您的实体中并保留/合并它。

确保您已将表单编码类型设置为 multipart/form-data并且,当使用 Apache Commons FileUpload 时,您已经配置了 file upload filterweb.xml根据 PrimeFaces 用户指南。

关于jsf - 如何从 p :fileUpload as BLOB in MySQL? 插入上传的图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8305633/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com