I\'m trying to upload a file with primefaces fileuploader but it returns null,
addPhotos.xhtml :
Try following code:
xhtml:
jsf:
@ManagedBean
@ViewScoped
public class ImageUpload_2 implements Serializable {
UploadedFile uploaded_image;
public UploadedFile getUploaded_image() {
return uploaded_image;
}
public void setUploaded_image(UploadedFile uploaded_image) {
this.uploaded_image = uploaded_image;
}
String upload_location;
public String getUpload_location() {
return upload_location;
}
public void setUpload_location(String upload_location) {
this.upload_location = upload_location;
}
public void handleFileUpload(FileUploadEvent event) {
uploaded_image = event.getFile();
ServletContext servletContext = (ServletContext) FacesContext.getCurrentInstance().getExternalContext().getContext();
String v_file_ext = uploaded_image.getFileName().split("\\.")[(uploaded_image.getFileName().split("\\.").length) - 1];
upload_location = servletContext.getRealPath("") + File.separator + "temp-images" + File.separator + "3" + "." + v_file_ext;
FileImageOutputStream imageOutput;
try {
imageOutput = new FileImageOutputStream(new File(upload_location));
imageOutput.write(uploaded_image.getContents(), 0, uploaded_image.getContents().length);
imageOutput.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
public void btn_save_clicked(ActionEvent event) {
byte[] file = new byte[uploaded_image.getContents().length];
System.arraycopy(uploaded_image.getContents(), 0, file, 0, uploaded_image.getContents().length);
//ent.setImg(file);
//yourfacade.create(ent);
}
public ImageUpload_2() {
}
}
Where ent is the object of Entity Class and img (setImg) is database column of BLOB type.You just need to create "temp-images" folder in you project under web folder where xhtml files are lying. Tell me if you are still having any issue.