This question already has an answer here:
Pass value of another input component when uploading file via p:fileUpload mode=advanced
(1个答案)
4年前关闭。
我正在使用带有primfaces的jsf2.0,并使用p:fileupload上传照片。在这里,我需要在后备bean中传递参数。因为没有选项可以通过p:fileupload传递参数。我也使用了绑定(bind)选项,但是它在支持bean上返回了空值。
这是我的fileupload.xhtml
这是我的支持 bean 方法
提前致谢
(1个答案)
4年前关闭。
我正在使用带有primfaces的jsf2.0,并使用p:fileupload上传照片。在这里,我需要在后备bean中传递参数。因为没有选项可以通过p:fileupload传递参数。我也使用了绑定(bind)选项,但是它在支持bean上返回了空值。
这是我的fileupload.xhtml
<h:form enctype="multipart/form-data">
<p:panel header="Upload Photos" id="getImageId"
style="font-size:12px;height:499px">
<p:messages id="messages" for="imaload"></p:messages>
<p:fileUpload id="imaload" fileUploadListener="#
{ngoPhotoUpload.photoUpload}"
mode="advanced" multiple="true"
immediate="true"
update="messages"
allowTypes="/(\.|\/)(gif|jpe?g|png)$/"/>
<!-- <p:growl life="1000" id="messages"/> -->
</p:panel>
</h:form>
这是我的支持 bean 方法
public void photoUpload(FileUploadEvent event) throws IOException,
InterruptedException {
BufferedImage bufferedImage;
String tmpFile = scontext.getRealPath(("/ngoPhotos/")
+ event.getFile().getFileName());
File result = new File(tmpFile);
byte[] imageByte = event.getFile().getContents();
storeImage(imageByte, tmpFile);
String imageName = event.getFile().getFileName();
String createdby = loginBean.getEmail();
if (loginBean.getType().equals("admin")
|| loginBean.getType().equals("ngo_coordinator")) {
if (ngoRegnPojo.getNgo_id() != 0) {
ngoPhotoBean.setNgo_id(ngoRegnPojo.getNgo_id());
} else {
ngoPhotoBean.setNgo_id(loginBean.getUser_id());
}
} else {
ngoPhotoBean.setNgo_id(loginBean.getUser_id());
}
ngoPhotoBean.setImageName(imageName);
ngoPhotoBean.status = "status";
ngoPhotoBean.setCreatedDate(new Date());
ngoPhotoBean.setCreatedby(createdby);
//ngoPhotoBean.setPathName(tmpFile);
ngoPhotoBean.disable = "false";
bufferedImage = ImageIO.read(result);
if (bufferedImage.getWidth() <= 400 && bufferedImage.getHeight() <= 400) {
ngoPhotoBean.disable = "false";
getMthd(imageByte, tmpFile);
} else {
try {
ngoPhotoBean.disable = "false";
bufferedImage = ImageIO.read(result);
ImageIO.write(resize(bufferedImage, 400, 400), "jpg", new File(
tmpFile));
photoUploadDaoService.uploadNgoPhoto(ngoPhotoBean);
NgoPhotoBean ngoPhotoBean = new NgoPhotoBean();
FacesContext.getCurrentInstance().getExternalContext()
.getSessionMap().put("ngoPhotoBean", ngoPhotoBean);
FacesMessage msg = new FacesMessage("Successfully Uploaded");
FacesContext.getCurrentInstance().addMessage(null, msg);
} catch (Exception e) {
e.printStackTrace();
FacesMessage error = new FacesMessage(
FacesMessage.SEVERITY_ERROR,
"The files were not uploaded!", "");
FacesContext.getCurrentInstance().addMessage(null, error);
}
}
}
提前致谢
最佳答案
您需要传递什么样的参数?如果它只是某种常量,则将Hidden field放入表单中,以便在提交后可以接收它的值。