Estou tentando fazer um formulário que possui campos com texto , números e upload de imagem, porem não estou conseguindo atrelar o campo nome, numero ao campo imagem.
No caso eu preciso armazenar na base de dados o nome da pessoa, idade e o nome da foto, eu consigo fazer o upload das imagem mas não consigo resgatar o nome dela para armazenar junto aos dados da pessoa.
segue:
<h:form>
<h:panelGrid columns="2" cellpadding="5">
<p:outputLabel for="nome" value="Nome:" />
<p:inputText id="nome" value="#{pessoa.nome}"/>
<p:outputLabel for="sobrenome" value="Sobrenome: " />
<p:inputText id="sobrenome" value="#{Pessoa.sobrenome}"/>
<p:fileUpload fileUploadListener="#{fileView.upload}" cancelLabel="Cancelar" uploadLabel="Anexar" label="Selecionar" mode="advanced"
dragDropSupport="false" invalidSizeMessage="Tamanho de imagem invalida !" invalidFileMessage="Arquivo invalido!"
multiple="true" update="messages" sizeLimit="1000000" fileLimit="3" allowTypes="/(\.|\/)(gif|jpe?g|png)$/" />
</h:panelGrid>
<p:growl id="messages" showDetail="true" />
<h:commandButton action="resultado.xhtml" value="Submit"/>
</h:form>
@ManagedBean
@RequestScoped
public class FileView {
private UploadedFile file;
public UploadedFile getFile() {
return file;
}
public void setFile(UploadedFile file) {
this.file = file;
}
public void upload(FileUploadEvent event) {
file = event.getFile();
File file1;
Random gerador = new Random();
if (file != null) {
File arquivo = new File("C:\\temp", file.getFileName());
if (arquivo.exists()) {
file1 = new File("C:\\temp", gerador.nextInt() + file.getFileName());
} else {
file1 = new File("C:\\temp", file.getFileName());
}
try {
file1.getName();
FileOutputStream fos = new FileOutputStream(file1);
fos.write(event.getFile().getContents());
fos.close();
FacesMessage message = new FacesMessage("Arquivo anexado com sucesso!", event.getFile().getFileName());
FacesContext.getCurrentInstance().addMessage(null, message);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
@ManagedBean
public class Pessoa {
String nome;
String sobrenome;
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getSobrenome() {
return sobrenome;
}
public void setSobrenome(String sobrenome) {
this.sobrenome = sobrenome;
}
}