Fórum Problemas com Upload do Richfaces #386424

15/09/2010

0

Rapazeada to precisando de uma ajuda aqui.. 

estou utilizando o Glassfish 3.0.1 no Debian Lenny para rodar uma aplicação em JSF. 

O problema está no upload de arquivos que não está chamando o método, e está jogando os arquivos na pasta /tmp/ do servidor. 
O Glassfish está rodando na /opt/

segue o código... se alguém puder dar uma luz eu agradeço. 


upload.xhtml 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" 
xmlns:h="http://java.sun.com/jsf/html" 
xmlns:f="http://java.sun.com/jsf/core" 
xmlns:ui="http://java.sun.com/jsf/facelets" 
xmlns:a4j="http://richfaces.org/a4j" 
xmlns:rich="http://richfaces.org/rich"> 

<body> 
<h:form> 
<table align="center"> 
<tr> 
<td> 
<rich:fileUpload fileUploadListener="#{classeUpload.listener}" 
maxFilesQuantity="5" 
addControlLabel="Adicionar" 
clearAllControlLabel="Limpar tudo" 
clearControlLabel="limpar" 
stopEntryControlLabel="Parar" 
uploadControlLabel="Enviar" 
doneLabel="Arquivo enviado!" 
acceptedTypes="zip,doc,docx,xlsx,xls,pdf,ppt,pptx"> 
<f:facet name="label"> 
<h:outputText value="KB de KB enviados --- :" /> 
</f:facet> 
</rich:fileUpload> 
</td> 
</tr> 
</table> 
</h:form> 
</body> 

</html> 



web.xml 

<?xml version="1.0"?> 
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" 
xmlnssi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> 
<description>Facelets StarterKit</description> 
<display-name>TesteUpload</display-name> 
<context-param> 
<param-name>javax.faces.DEFAULT_SUFFIX</param-name> 
<param-value>.xhtml</param-value> 
</context-param> 
<context-param> 
<param-name>facelets.REFRESH_PERIOD</param-name> 
<param-value>2</param-value> 
</context-param> 
<context-param> 
<param-name>facelets.DEVELOPMENT</param-name> 
<param-value>true</param-value> 
</context-param> 
<context-param> 
<param-name>javax.faces.STATE_SAVING_METHOD</param-name> 
<param-value>client</param-value> 
</context-param> 
<context-param> 
<param-name>com.sun.faces.validateXml</param-name> 
<param-value>true</param-value> 
</context-param> 
<context-param> 
<param-name>com.sun.faces.verifyObjects</param-name> 
<param-value>true</param-value> 
</context-param> 
<filter-mapping> 
<filter-name>richfaces</filter-name> 
<servlet-name>Faces Servlet</servlet-name> 
<dispatcher>REQUEST</dispatcher> 
<dispatcher>FORWARD</dispatcher> 
<dispatcher>INCLUDE</dispatcher> 
<dispatcher>ERROR</dispatcher> 
</filter-mapping> 
<filter> 
<display-name>RichFaces Filter</display-name> 
<filter-name>richfaces</filter-name> 
<filter-class>org.ajax4jsf.Filter</filter-class> 
</filter> 
<filter> 
<display-name>Ajax4jsf Filter</display-name> 
<filter-name>ajax4jsf</filter-name> 
<filter-class>org.ajax4jsf.Filter</filter-class> 
<init-param> 
<param-name>createTempFiles</param-name> 
<param-value>false</param-value> 
</init-param> 
<init-param> 
<param-name>maxRequestSize</param-name> 
<param-value>20000000</param-value> 
</init-param> 
</filter> 
<servlet> 
<servlet-name>Faces Servlet</servlet-name> 
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class> 
<load-on-startup>1</load-on-startup> 
</servlet> 
<servlet-mapping> 
<servlet-name>Faces Servlet</servlet-name> 
<url-pattern>*.jsf</url-pattern> 
</servlet-mapping> 
<welcome-file-list> 
<welcome-file>index.jsf</welcome-file> 
</welcome-file-list> 
<login-config> 
<auth-method>BASIC</auth-method> 
</login-config> 
</web-app> 


faces-config.xml 

<?xml version="1.0" encoding="UTF-8"?> 
<faces-config version="1.2" xmlns="http://java.sun.com/xml/ns/javaee" 
xmlnsi="http://www.w3.org/2001/XInclude" 
xmlnssi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_1_2.xsd"> 
<managed-bean> 
<managed-bean-name>classeUpload</managed-bean-name> 
<managed-bean-class>upload.ClasseUpload</managed-bean-class> 
<managed-bean-scope>session</managed-bean-scope> 
</managed-bean> 
<application> 
<view-handler>com.sun.facelets.FaceletViewHandler</view-handler> 
</application> 
</faces-config> 



ClasseUpload.java 

package upload; 

import java.io.ByteArrayOutputStream; 
import java.io.File; 
import java.io.FileInputStream; 
import java.io.FileOutputStream; 
import java.io.InputStream; 
import java.io.OutputStream; 

import org.richfaces.event.UploadEvent; 
import org.richfaces.model.UploadItem; 


public class ClasseUpload{ 

public void listener(UploadEvent evento) throws Exception{ 

UploadItem upload = evento.getUploadItem(); 
File arquivoUpload = null; 

if(upload.isTempFile()){ 
String string[] = upload.getFileName().split("\\\\"); 
arquivoUpload = new File("\\home\\storage\\" + string[string.length -1]); // "\\home\\storage\\" 

InputStream in = new FileInputStream(upload.getFile()); 
OutputStream out = new FileOutputStream(arquivoUpload); 

byte[] buf = new byte[1024]; 
int len; 

while ((len = in.read(buf)) > 0) { 
out.write(buf, 0, len); 
} 

in.close(); 
out.close(); 
}else{ 
ByteArrayOutputStream b = new ByteArrayOutputStream(); 
b.write(evento.getUploadItem().getData()); 
} 

} 

}

   

Coop Litoranea

Coop Litoranea

Responder

Posts

21/09/2010

Dyego Carmo

no h:form adicione o multipart/form-data no parametro do tipo :)

Responder

Gostei + 0

21/09/2010

Fundação Catarina

DYEGO, vou fazer este teste, mas acredito que não funcione, pois esse código funciona perfeitamente em Windows.. caso eu altere o local "\\home\\storage\\" para "C:\\arquivos\\" e rode no sistema da Microsoft ele salva corretamente, mas no Debian não salva.. fica apenas na /tmp/.
Vou verificar as permissões de escrita da pasta "\\home\\storage\\" e depois respondo aqui.
Abraço.
Responder

Gostei + 0

21/09/2010

Coop Litoranea



Galera.. foi mal.. eu estava logado com o usuário da universidade.
Se algum administrador tiver a bondade de alterar o post para o meu usuário eu agradeço.
Abraços.
Responder

Gostei + 0

27/09/2010

Dyego Carmo

Opa !
Resolvido ?

ValeuZ !
Responder

Gostei + 0

16/02/2011

Coop Litoranea

Muito tempo depois... acabei não mexendo mais naquilo ali.. mas caso eu volte vou publicar aqui..
Obrigado..
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar