Galera! Seguinte,
Quero salvar documentos enviados dentro do contexto do projeto na pasta docs…
Ex.: http://localhost:8080/SISTEMA/docs
ele teria que pegar o contexto C:\desenv\workspace\SISTEMA\WebContent\docs
mas ele pega o contexto C:\desenv\workspace.metadata.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\SISTEMA\docs
como funciona?
Segue o código:
MB
[code]@ManagedBean
@SessionScoped
public class DocumentosController {
private StreamedContent imagem;
private Documento arquivo;
public void handleFileUpload(FileUploadEvent event) {
try {
arquivo = new Documento();
imagem = new DefaultStreamedContent(event.getFile().getInputstream());
byte[] doc = event.getFile().getContents();
arquivo.setArquivo(doc);
arquivo.setNome(event.getFile().getFileName());
FacesContext facesContext = FacesContext.getCurrentInstance();
ServletContext scontext = (ServletContext) facesContext.getExternalContext().getContext();
String local = scontext.getRealPath("/docs/" + arquivo.getNome());
FileOutputStream fos = new FileOutputStream(local);
fos.write(arquivo.getArquivo());
fos.flush();
fos.close();
FacesMessage msg = new FacesMessage("Arquivo: ", event.getFile().getFileName() + " Enviado com Sucesso!");
FacesContext.getCurrentInstance().addMessage(null, msg);
} catch (IOException e) {
e.printStackTrace();
}
}
//getters and setters
}
[/code]
xhtml
<p:dialog header="Relatório" widgetVar="dlgUploadRelatorio"
modal="true" showEffect="slide" width="300" height="200"
onShow="mymap.checkResize()">
<h:form>
<p:fileUpload label="Enviar Arquivo"
fileUploadListener="#{documentosController.handleFileUpload}"
auto="true" allowTypes="*.doc;*.pdf;*.rtf;" description="Documentos" />
</h:form>
</p:dialog>