Erro em upload de arquivo - Myfaces + Tomahawk + JSP + JSF

27 respostas
F

Pessoal, eu segui a risca esse tutorial mudando apenas a taglib do jar la para o tomahawk, mas ele lança a exceção abaixo:
Bean:

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package br.com.ciakairos.arquivos;

import java.io.BufferedInputStream;
import java.io.InputStream;
import java.security.MessageDigest;
import javax.faces.application.FacesMessage;
import javax.faces.context.FacesContext;
import org.apache.myfaces.custom.fileupload.UploadedFile;

/**
 *
 * @author samuel
 */
public class MyBean {

    private UploadedFile myFile;
    private String myParam;
    private String myResult;

    public UploadedFile getMyFile() {
        return myFile;
    }

    public void setMyFile(UploadedFile myFile) {
        this.myFile = myFile;
    }

    public String getMyParam() {
        return myParam;
    }

    public void setMyParam(String myParam) {
        this.myParam = myParam;
    }

    public String getMyResult() {
        return myResult;
    }

    public void setMyResult(String myResult) {
        this.myResult = myResult;
    }
    
    public String processMyFile() {
        try {
            MessageDigest md
                = MessageDigest.getInstance(myParam);
            InputStream in = new BufferedInputStream(
                myFile.getInputStream());
            try {
                byte[] buffer = new byte[64 * 1024];
                int count;
                while ((count = in.read(buffer)) > 0)
                    md.update(buffer, 0, count);
            } finally {
                in.close();
            }
            byte hash[] = md.digest();
            StringBuffer buf = new StringBuffer();
            for (int i = 0; i < hash.length; i++) {
                int b = hash[i] & 0xFF;
                int c = (b >> 4) & 0xF;
                c = c < 10 ? '0' + c : 'A' + c - 10;
                buf.append((char) c);
                c = b & 0xF;
                c = c < 10 ? '0' + c : 'A' + c - 10;
                buf.append((char) c);
            }

            myResult = buf.toString();
            return "OK";
        } catch (Exception x) {
            FacesMessage message = new FacesMessage(
                FacesMessage.SEVERITY_FATAL,
                x.getClass().getName(), x.getMessage());
            FacesContext.getCurrentInstance().addMessage(
                null, message);
            return null;
        }
    }

}

web.xml

...
     <!-- Extensions Filter -->
    <filter>
        <filter-name>extensionsFilter</filter-name>
        <filter-class>
            org.apache.myfaces.component.html.util.ExtensionsFilter
        </filter-class>
    <init-param>
        <param-name>uploadMaxFileSize</param-name>
        <param-value>50m</param-value>
        </init-param>
    <init-param>
        <param-name>uploadThresholdSize</param-name>
        <param-value>100k</param-value>
    </init-param>
    <init-param>
        <param-name>uploadRepositoryPath</param-name>
        <param-value>/home/samuel/kairos-files/</param-value>
        <description>Set the path where the intermediary files will be stored.
        </description>
    </init-param>
    </filter> 
    ...

JSF

<f:view>

<h:form id="MyForm" enctype="multipart/form-data" >

    <h:messages globalOnly="true" styleClass="message"/>

    <h:panelGrid columns="3" border="0" cellspacing="5">

        <h:outputLabel for="myFileId" value="File: "/>
        <x:inputFileUpload id="myFileId"
            value="#{myBean.myFile}"
            storage="file"
            required="true"/>
        <h:message for="myFileId"/>

        <h:outputLabel for="myParamId" value="Param: "/>
        <h:selectOneMenu id="myParamId"
                value="#{myBean.myParam}"
                required="true">
            <f:selectItem itemLabel="" itemValue=""/>
            <f:selectItem itemLabel="MD5" itemValue="MD5"/>
            <f:selectItem itemLabel="SHA-1" itemValue="SHA-1"/>
            <f:selectItem itemLabel="SHA-256" itemValue="SHA-256"/>
            <f:selectItem itemLabel="SHA-384" itemValue="SHA-384"/>
            <f:selectItem itemLabel="SHA-512" itemValue="SHA-512"/>
        </h:selectOneMenu>
        <h:message for="myParamId"/>

        <h:outputText value=" "/>
        <h:commandButton value="Submit"
            action="#{myBean.processMyFile}"/>
        <h:outputText value=" "/>

    </h:panelGrid>

</h:form>

</f:view>

A tal exceção:

15/02/2008 15:53:36 com.sun.faces.lifecycle.LifecycleImpl phase
WARNING: phase(RENDER_RESPONSE 6,com.sun.faces.context.FacesContextImpl@dc64a2) threw exception: java.lang.NoClassDefFoundError: Could not initialize class org.apache.myfaces.shared_tomahawk.config.MyfacesConfig Could not initialize class org.apache.myfaces.shared_tomahawk.config.MyfacesConfig
org.apache.myfaces.renderkit.html.util.ExtensionsPhaseListener.writeCodeBeforeBodyEnd(ExtensionsPhaseListener.java:129)
org.apache.myfaces.renderkit.html.util.ExtensionsPhaseListener.getCodeBeforeBodyEnd(ExtensionsPhaseListener.java:104)
org.apache.myfaces.renderkit.html.util.ExtensionsPhaseListener.getJavaScriptCodeAndStoreInRequest(ExtensionsPhaseListener.java:94)
org.apache.myfaces.renderkit.html.util.ExtensionsPhaseListener.afterPhase(ExtensionsPhaseListener.java:70)
com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:280)
com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:144)
javax.faces.webapp.FacesServlet.service(FacesServlet.java:245)
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:263)
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:584)
org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
java.lang.Thread.run(Thread.java:619)

E sim, eu tenho todos o jars no meu classpath, a listar:

ant-1.6.5.jar                  commons-digester.jar               hibernate-validator.jar     jta.jar
ant-antlr-1.6.5.jar            commons-io-1.4.jar                 jaas.jar                    junit-3.8.1.jar
ant-junit-1.6.5.jar            commons-io-1.4-javadoc.jar         jacc-1_0-fr.jar             log4j-1.2.11.jar
ant-launcher-1.6.5.jar         commons-io-1.4-sources.jar         javassist.jar               mail.jar
antlr-2.7.6.jar                commons-logging-1.0.4.jar          jaxen-1.1-beta-7.jar        mysql-connector-java-5.1.5-bin.jar
ant-swing-1.6.5.jar            commons-logging.jar                jboss-archive-browsing.jar  oscache-2.1.jar
asm-attrs.jar                  concurrent-1.3.2.jar               jboss-cache.jar             proxool-0.8.3.jar
asm.jar                        connector.jar                      jboss-common.jar            standard.jar
c3p0-0.9.1.jar                 dom4j-1.6.1.jar                    jboss-jmx.jar               swarmcache-1.0rc2.jar
cglib-2.1.3.jar                ehcache-1.2.3.jar                  jboss-system.jar            syndiag2.jar
checkstyle-all.jar             ejb3-persistence.jar               jdbc2_0-stdext.jar          tomahawk-1.1.6.jar
cleanimports.jar               hibernate3.jar                     jgroups-2.2.8.jar           versioncheck.jar
commons-beanutils.jar          hibernate-annotations.jar          jsf-api.jar                 xerces-2.6.2.jar
commons-collections-2.1.1.jar  hibernate-commons-annotations.jar  jsf-impl.jar                xml-apis.jar
commons-collections.jar        hibernate-entitymanager.jar        jstl.jar

Alguém sabe pq isso naum ta funfando?
Muito obrigado

27 Respostas

F

Galera, alguém ja conseguiu fazer upload de arquivo usando jsf + jsp?
De qualquer forma? Por favor, se alguem ja conseguiu, pode me dizer como?
Ja tentei varias formas, preciso de uma que funcione,
obrigado

R

comigo esta dando o mesmo problema tmb!

“java.lang.NoClassDefFoundError: Could not initialize class org.apache.myfaces.shared_tomahawk.config.MyfacesConfig”

eu preciso mt desse upload pra terminar o projeto!
eu tinha conceguido usando o Icefaces, mas ele é mt ruinzinhu, e resolvi usar o richfaces… mas o rich noa tem upload… entoa recorri ao tomahawk…
mas nao concigo colocar isso pra funcionar…

se alguem solber de algo…

grato

E

Mesmo problema… alguma solução?

R

Brother… eu desisti de usar o tomahawk !!!

vou esperar a novo richfaces 3.2
que vai ter o fileupload !

no site disse que vai sair esse mês!!

:smiley:

E

Eu consegui fazer com o upload do tomahawk, se alguem precisar de ajuda…

Quando saiu o richFaces 3.2 atualizei, e agora estou mudando o upload para o rich:fileUpload, MAS… logo quando eu tento grvar o arquivo em disco o método getData(), do UploadItem (do richFaces) retorna sempre null, ele pega o nome do arquivo belezinha, mas não faz o upload do “conteudo” do arquivo…

Alguém conseguiu fazer algo parecido ?

Até.

R

oi Eklam… pow vc conceguiu no tomahawk ::??

eu concegui no richfaces 3.2… qual seu problema lá ?

vc criou o listening ?

E

Então, usei sim, ele vai e chama tudo certinho, qnd eu tento grava em disco ele dava uma exceção, coloquei no upload:

public void upload(UploadEvent event) {
        System.out.println("132456" + event.getUploadItem().toString());
        System.out.println("132456" + event.getUploadItem().getFileName());
        System.out.println("132456" + event.getUploadItem().getData().length);
        getFiles().add(event.getUploadItem());
}

Os dois 1°s imprimem a informação certinho, mas o getData() retorna null… Posta o seu bean pra eu dar uma olhada, vc esta gravando o arquivo em disco ?

R
<h:form id="formUpload" enctype="multipart/form-data">
              <rich:fileUpload
                  align="center"
                  rendered="#{SessionUser.usuario.rules.atualizacao}"
                  acceptedTypes="txt, csv"
                  maxFilesQuantity="1"
                  listHeight="70"
                  uploadData="#{FileUploadBean.data}"
                  fileUploadListener="#{FileUploadBean.fileUploadListener}"
              />
          </h:form>
private UploadItem data;

    public void setData(UploadItem data) {
        this.data = data;
    }

    public UploadItem getData() {
        return data;
    }

    public void fileUploadListener(org.richfaces.event.UploadEvent event) {

        System.out.println("listener: " + event.toString());
        UploadItem item = event.getUploadItem();

        System.out.println("listener: " + item.getFileName());

        File file = item.getFile();
        
        System.out.println("listener: " + file.getName());
        
    }

web.xml

<init-param> <param-name>createTempFiles</param-name> <param-value>true</param-value> </init-param>

espero que isso ajude

R

sim ele grava o arquivo em disco !
em uma pasta temporaria no servidor…

se quizer gravar em outro local
use o getUploadItem();

e escreve ele onde voce quizer

:smiley:

E

Então, até aí ta igual, (mas aqui o usuário pode fazer upload de vario de uma vez) quando eu dou um event.getUploadItem().getData(), que eu preciso pra salvar o arquivo no método que segue, ele retorna null e gera uma exceção…

método que grava em disco

public synchronized String saveUploadedFile(UploadItem uploadedFile, String path) {
        String name = getFileName(uploadedFile.getFileName());
        String fullPath = caminhoC + path + name;
        FileOutputStream fos = null;
        try {
            File f = new File(fullPath);
            f.createNewFile();
            
            fos = new FileOutputStream(f);
            fos.write(uploadedFile.getData()); // <-- gera a exceção aqui ó . . .
            fos.close();
            return path + name;
        } catch (Exception ex) {
            ex.printStackTrace();
        }
        return null;
    }

Se não for pedir muito, tenta dar um getData() aí no seu, pra ver se ele retorna alguma coisa…

R

brother… ele enviou os dois arquivos que eu mandei

C:\Documents and Settings\rbroz.netbeans\6.0\apache-tomcat-6.0.14_base\temp\67c40024-11934a531d9–7ffd58804.upload - 67c40024-11934a531d9–7ffd58804.upload
C:\Documents and Settings\rbroz.netbeans\6.0\apache-tomcat-6.0.14_base\temp\67c40024-11934a531d9–7ffc58805.upload - 67c40024-11934a531d9–7ffc58805.upload

ele salvou nesse diretorio…

ao invez de escrevelos…
nao é melhor ir la e copiar ele e coloar onde vc quer ?

file f = new file (“C:\Documents and Settings\rbroz.netbeans\6.0\apache-tomcat-6.0.14_base\temp\67c40024-11934a531d9–7ffc58805.upload - 67c40024-11934a531d9–7ffc58805.upload
”);

algo assim… seila

R

vc nao precisa usar o getdata. so pq vc ta uploading varios arquivos… pois quando ele termina um ele vai pro bean e faz o que tem que fazer…

ele nao envia todos arquivos de um vez pro bean…

ele faz o request de acordo com a qntidade de arquivo que vc tem…
entoa se voce fazer…

getUploadItem();

pegar o arquivo e salvar em outro lugar…
sera o primeiro arquivo que foi uploaded…

depois a app faz outro requeste para os outros arquivos :smiley:

E

É que eu tinha criado uma collection de arquivos, e colocava os arquivos la no fileUploadListener, e criei um método flush() que pegava todos os arquivos da collection e gravava em disco, mas eu acho q vou tentar criar um arquivo temporario e “copiar” ele em outro lugar, como vc sugeriu…

R

e que tipo… eu nao sei mais outra solução.
o richfaces ja cria os arquivos temporarios…

aquele .upload…

durante o request no listener

vc pega o nome do arquivo original.

e muda no arquivo temp. senao ele vai ficar com aquele nome grandao .upload

brother… como vc fez com o tomahawk ?
eu nao concegui implementar ele !
ele é compativel com jdk6, tomcat 6 , JSF 1.2 ?

E

Então, ta meio gambiarrado, mas é a ultima versão q eu tenho q ainda usa o do tomahawk…

Pagina

<x:inputFileUpload id="file" value="#{fonteSeguraMB.file}" storage="file" required="true"/>
<h:message id="fileMsg" for="file" />

O Bean

private UploadedFile file;
   
    public UploadedFile getFile() {
        return file;
    }

    public void setFile(UploadedFile file) {
        this.file = file;
    }
    
    public boolean isCapaRendered() {
        System.out.println("isCapaRendered: " + getFonteSeguraSelecionada().getCapa() + "|");
        try {
            return ((getFonteSeguraSelecionada().getCapa() != null) && (!getFonteSeguraSelecionada().getCapa().trim().equals("")));
        } catch (Exception ex) {
            ex.printStackTrace();
            return false;
        }
    }

    public String alterar() {
        UploadManager um = new UploadManager();
        String path = um.saveUploadedFile(getFile(), bd.getFonteSeguraLocal().fonteSeguraPath);
        getFonteSeguraSelecionada().setCapa(path);
        .
        .
        .
    }

A outra classe q salva o arquivo em disco

public class UploadManager {
    public String saveUploadedFile(UploadedFile uploadedFile, String path) {
        int i = uploadedFile.getName().lastIndexOf("\\") + 1;
        String name = uploadedFile.getName().substring(i);
        String fullPath = "C:\\..." + path + name; //<-provisorio para gravar o arquivo
        System.out.print("--->fullapth" + fullPath);
        FileOutputStream fos = null;
        try {
            File f = new File(fullPath);
            f.createNewFile();
            fos = new FileOutputStream(f);
            fos.write(uploadedFile.getBytes());
            fos.close();
            return path + name;
        } catch (Exception ex) {
            ex.printStackTrace();
        }
        return null;
    }
}

Qq duvida posta ae…

PS: Aquele esquema de copiar o arquivo ainda n deu certo … rsrs

R

einda nao funcionou…

como esta seu web.XML ?

o exception:

java.lang.NoClassDefFoundError: Could not initialize class org.apache.myfaces.shared_tomahawk.config.MyfacesConfig

abs

E

O meu tava dando esse erro, se não me engano era biblioteca que estava faltando... ve se vc tem:

el-api-1.0.jar
el-impl-1.0.jar
commons-logging-1.1.1.jar
commons-el.jar
commons-io-1.4.jar
e as padrões... beanutils...collection...digester..

N lembro qual era...

web.xml - inteiro
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
 <description>Mapfre</description>
 <display-name>Mapfre</display-name>
 <context-param>
  <param-name>javax.faces.DEFAULT_SUFFIX</param-name>
  <param-value>.xhtml</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>org.ajax4jsf.SKIN</param-name>
  <param-value>blueSky</param-value>
 </context-param>
 <filter>
  <display-name>Ajax4jsf Filter</display-name>
  <filter-name>ajax4jsf</filter-name>
  <filter-class>org.ajax4jsf.Filter</filter-class>
 </filter>
<filter-mapping>
  <filter-name>ajax4jsf</filter-name>
  <servlet-name>Faces Servlet</servlet-name>
  <dispatcher>REQUEST</dispatcher>
  <dispatcher>FORWARD</dispatcher>
  <dispatcher>INCLUDE</dispatcher>
  <dispatcher>ERROR</dispatcher>
</filter-mapping>
    <listener>
        <listener-class>org.jboss.web.jsf.integration.config.JBossJSFConfigureListener</listener-class>
    </listener>
    <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>
 <login-config>
  <auth-method>BASIC</auth-method>
 </login-config>
     <context-param>
        <param-name>jsf-security-user-provider</param-name>
        <param-value>br.com.globalcode.jsf.security.usersession.SessionUserProvider</param-value>
    </context-param>
    <servlet-mapping>
        <servlet-name>Faces Servlet</servlet-name>
        <url-pattern>*.xhtml</url-pattern>
    </servlet-mapping>
    <security-constraint>
     <display-name>Sample</display-name>
        <web-resource-collection>
          <web-resource-name>members</web-resource-name>
          <description/>
          <url-pattern>/teste.jsf</url-pattern>
          <http-method>GET</http-method>
          <http-method>POST</http-method>
        </web-resource-collection>
        <auth-constraint>
          <description/>
          <role-name>admin</role-name>
        </auth-constraint>
    </security-constraint>
    <security-role>
        <description/>
        <role-name>admin</role-name>
    </security-role>
    <security-role>
        <description/>
        <role-name>supervisor</role-name>
    </security-role>
    <security-constraint>
        <display-name>protected pages</display-name>
        <web-resource-collection>
            <web-resource-name>ProtectedPages</web-resource-name>
            <description/>
            <url-pattern>/teste.jsf</url-pattern>
            <http-method>GET</http-method>
            <http-method>POST</http-method>
            <http-method>HEAD</http-method>
            <http-method>PUT</http-method>
            <http-method>OPTIONS</http-method>
            <http-method>TRACE</http-method>
            <http-method>DELETE</http-method>
        </web-resource-collection>
        <auth-constraint>
            <description/>
        </auth-constraint>
    </security-constraint>
    <init-param>   
    <param-name>createTempFiles</param-name>   
    <param-value>true</param-value>   
</init-param></web-app>
R

Sinistro, eu tenho todas essas libs…
sua version é 2.4
o meu é 2.5
nao é isso ?
seila rsrsrs

R

Certo, e como eu faço pra colocar esse arquivo temporário no diretório images da minha aplicação por exemplo???

Obrigado

Rodrigo

R

fala aí bro!

assim:

FacesContext context = FacesContext.getCurrentInstance();

HttpServletResponse response = (HttpServletResponse) context.getExternalContext().getResponse();

String c = getServletContext().getRealPath("/images");

abs

L

Po tambem nao consigo fazer o upload com o Tomahawk + myfaces + icefaces.

Eu consigo entrar no metodo do bean mas o fileUpload que eu tenho no meu bean vem como null, alguem sabe como posso arrumar isto?

Estou coloca o enctype certinho mas nao sei porque nao vem o objeto.

abraços.

R

um amigo meu do eua acabou de conceguir usando esse link

http://www.roseindia.net/jsf/apache-myfaces-tomahawk/tomahawk_inputFileUpload_tag.shtml

abraco

L

Valeu pelo link mas ja havia visitado ele.

O grande problema é que usando este exemplo o upload funciona de boa porem, no meu projeto com icefaces ele nao funciona, quando uso o commandbutton do myfaces ele nao chama o metodo do back bean e quando coloco o commando button do ice ele nao envia o uploadfile pro objeto no back bean, pior e que preciso disso funcionando pra sexta.

Ao meu ver é algo relacionado com o submit do ice que nao filtra o uploadFile, alguma sugestao?

To pensando ja em ir pro inputUploadFile do richFaces pra ve se tenho mais sorte…

:shock: :cry:

R

pow cara… eu tinha um projeto do em icefaces… dai eu presizei do fileupload…

tive que mudar tudo pro richfaces (ficou bem melhor)
hehe

L

rbroz85:
pow cara… eu tinha um projeto do em icefaces… dai eu presizei do fileupload…

tive que mudar tudo pro richfaces (ficou bem melhor)
hehe

É andei analisando o richfaces e provavelmente vou migrar mas agora isso e impossivel visto que tenho que apresentar um protótipo desse sistema sexta feira.

Vou tentar recompilar a lib do icefaces e modificar o que quero no component.

Com sucesso retorno aqui.

obrigado pela atenção.

J
rbroz85:
fala aí bro!

assim:

FacesContext context = FacesContext.getCurrentInstance();
HttpServletResponse response = (HttpServletResponse) context.getExternalContext().getResponse();
String c = getServletContext().getRealPath("/images");

abs

Kara
eu não consigo de jeito nenhum recuperar o path pra colocar esse arquivo temporário no diretório images da minha aplicação. Não consigo fazer uma ligação com o codigo que voce passou...
mas também já tentei assim:

private String recuperaDiretorioImagem() {
		String newDiretory;
		ExternalContext externalContext = FacesContext.getCurrentInstance().getExternalContext();
		ServletContext ctx = (ServletContext)externalContext.getContext();
		 newDiretory = ctx.getRealPath("WEB-INF\\img");
		return newDiretory;
	}

Retornou este diretório (Isto está certo?) :

D:\Projetos pessoais\projetos\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\gabriel\WEB-INF\img

A pasta que eu gostaria de atualizar é:
D:\Projetos pessoais\projetos\gabriel\WebContent\WEB-INF\img

Porem eu não posso usar a URL como está aqui(modo estático) , preciso de uma url relativa já que depois eu irei hospedar o site...
os componentes de imagem não buscam imagem fora da aplicação.
Alguem tem alguma ideia de como pegar o caminho do contexto da aplicação ?
pois depois eu quero reiderizar a imagem no diretório IMG e estando dentro da aplicação ele consegue achar

Obs: tentei outro metodo tambem:
public void fileUploadListener(org.richfaces.event.UploadEvent event) {
		UploadItem item = event.getUploadItem();
		
		String dirInside = recuperaDiretorioApplication();
		Date nomeMomento = new Date();
		String nome = String.valueOf(nomeMomento.getTime());
		String fullPath = newDiretory+"\\"+nome+".jpg";	
		String novoFullPath = dirInside+"/WebContent/WEB-INF/img/"+ nome+".jpg"; 
		File f = item.getFile();		
		try {
			f.renameTo(new File(novoFullPath ));

		} catch (Exception e) {
			e.printStackTrace();
		}
		

	}
Porem esse codigo aqui me retornou apenas um "\gabriel" (nome do meu projeto) dai eu precisei contatenar o resto da string para chegar até a img: dirInside+"/WebContent/WEB-INF/img/"+ nome+".jpg"; Alias ele nao salvou o arquivo na onde ue queria, nem mostrou erro: D:\Projetos pessoais\projetos\gabriel\WebContent\WEB-INF\img (dentro do projeto)

Please
alguem tem alguma ideia?
Vlw

J

Eu só qria entender pq algumas pessoas neste fórum, entram nele procurando a solução pra um problema,
acabam encontrando, falam q encontraram, massssss… não postam!!!

Aos preocupados em passar as idéias adiante,
um abraço!

:wink:

Criado 15 de fevereiro de 2008
Ultima resposta 5 de mar. de 2009
Respostas 27
Participantes 7