我使用PrimeFaces 5.3 <p:fileUpload>
來上傳PNG圖像,我想在保存到數據庫之前在<p:graphicImage>
中顯示它的預覽。在p:graphicImage中顯示p:fileupload圖像而不保存
這裏的一個MCVE:
<h:form enctype="multipart/form-data">
<p:fileUpload value="#{bean.uploadedFile}" mode="simple" />
<p:graphicImage value="#{bean.image}" />
<p:commandButton action="#{bean.preview}" ajax="false" value="Preview" />
</h:form>
private UploadedFile uploadedFile;
public UploadedFile getUploadedFile() {
return uploadedFile;
}
public void setUploadedFile(UploadedFile uploadedFile) {
this.uploadedFile = uploadedFile;
}
public void preview() {
// NOOP for now.
}
public StreamedContent getImage() {
if (uploadedFile == null) {
return new DefaultStreamedContent();
} else {
return new DefaultStreamedContent(new ByteArrayInputStream(uploadedFile.getContents()), "image/png");
}
}
發生在背襯豆沒有錯誤,並且圖像將不會被加載和顯示在前端。客戶提到該圖像返回了404未找到的錯誤。
你說上傳的作品所以這是怎麼問題[標籤:文件上傳]相關,而不是[標籤:圖形圖像] – Kukeltje
因爲'的byte []'源來自上傳的內容,所以我已經獲得了上傳內容'byte []',但是當我使用上傳內容顯示在網頁上時,它不會顯示並且說沒有找到資源 –
所以,你的意思是如果你手動將一個字節[]在數據庫中,而不是通過文件上傳,它的工作原理? – Kukeltje