Boa noite.
Andei pesquisando aqui no GUJ e encontrei um tópico antigo que fala exatamente sobre esse meu problema:
[url]http://www.guj.com.br/posts/list/123958.java[/url]
Fiz o que falava la mas ainda estou com algumas dúvidas.
Usei os seguintes códigos:
private UploadedFile Logomarca = null;
<h:form enctype="multipart/form-data">
<t:inputFileUpload storage="file" value="#{NovoNegocioBean.logomarca}"/>
<h:commandButton action="#{NovoNegocio.CriaNegocio}"/>
<br/>
</h:form>
public String CriaNegocio () {
FacesContext ctx = FacesContext.getCurrentInstance();
ServletContext servletContext = (ServletContext)ctx.getExternalContext().getContext();
//no contexto web, deverá existir uma pasta chamada temp
String path = servletContext.getRealPath("/temp");
String arquivo = Logomarca.getName();
//local onde será gravado o arquivo no contexto web (o arquivo será renomeado para teste.txt)
//isto dentro da pasta (contexto)/temp
String fullPath = path + "/teste.txt";
String contentType = Logomarca.getContentType();
ctx.getExternalContext().getApplicationMap().put("fileupload_type", contentType);
ctx.getExternalContext().getApplicationMap().put("fileupload_name", arquivo);
File file = new File(fullPath);
BufferedInputStream bufferedInputStream = null;
FileOutputStream fileOutputStream = null;
// Salvando o arquivo
try {
bufferedInputStream = new BufferedInputStream(Logomarca.getInputStream());
fileOutputStream = new FileOutputStream(file);
byte[] buffer = new byte[1024];
int count;
while ((count = bufferedInputStream.read(buffer)) > 0)
fileOutputStream.write(buffer, 0, count);
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
bufferedInputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
try {
fileOutputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
return null;
}
Quando eu executo a página, não dá nenhum erro e nenhuma exceção, mas o arquivo não vai para lugar algum!!!
Acho que o problema pode ser aqui:
//no contexto web, deverá existir uma pasta chamada temp
String path = servletContext.getRealPath("/temp");
O que devo colocar no lugar de "/temp" para fazer os arquivos serem salvos, por exemplo em uma pasta "Pasta01" localizada no mesmo diretório da minha página jsp?
Muito obrigado!
Abraço, Bottoni