dúvida JSP

Insurrecto

Power Member
pessoal tenho um código jsp que faz o upload de uma foto para o disco. o problema é que ele grava a foto na pasta raiz do tomcat e eu queria gravar numa outro pasta... alguém me pode ajudar a completar o código?

fica aqui o meu espaguete:

Código:
<%
    //<%! String io = (String) session.getAttribute("user");
    String io =  (String)(session.getAttribute("user"));
    
    long r = (long) System.currentTimeMillis();
   // Create a new file upload handler
ServletFileUpload upload = new ServletFileUpload();

// Parse the request
FileItemIterator iter = upload.getItemIterator(request);

while (iter.hasNext()) {
    FileItemStream item = iter.next();
    String name = item.getFieldName();
    InputStream stream = item.openStream();
    
    if (item.isFormField()) {
        out.write("Form field " + name + " with value "
            + Streams.asString(stream) + " detected.");
    } else {
        out.write("File field " + name + " with file name "
            + item.getName() + " detected.");
            // Process the input stream
            FileOutputStream fos = null;
            fos = new FileOutputStream(new File(io+"_"+r+".jpg"));
            
            byte[] Buffer = new byte[2000];
            int lido = 1;
            while (lido!=-1) {
            
            lido = stream.read(Buffer);
            out.write("lido = "+lido+"<br>");
            
            if (lido>0)
            {
            
            fos.write(Buffer,0,lido);
            }
            
            }
        
    }
}
%>

ninguém?
 
Última edição:
O File () pode ter assinaturas diferentes.

Onde tens:
Código:
fos = new FileOutputStream(new File(io+"_"+r+".jpg"));


tenta:
Código:
fos = new FileOutputStream(new File("c:\\directoria","oTeuFicheiro.extensao"));

Espero que resolva o teu problema.
 
O File () pode ter assinaturas diferentes.

Onde tens:
Código:
fos = new FileOutputStream(new File(io+"_"+r+".jpg"));
tenta:
Código:
fos = new FileOutputStream(new File("c:\\directoria","oTeuFicheiro.extensao"));
Espero que resolva o teu problema.

sim resolveu :009:

mas sabes como, em vez de colocar uma directoria fixa, colocar numa pasta "fotos" que está na pasta onde eu tenho este jsp... para ficar de forma dinâmica e não estática como indicas-te...
 
sim resolveu :009:

mas sabes como, em vez de colocar uma directoria fixa, colocar numa pasta "fotos" que está na pasta onde eu tenho este jsp... para ficar de forma dinâmica e não estática como indicas-te...

Atribuis variaveis tipo:

Código:
String caminho = "%tomcatroot%\\JSP\\fotos\\";
String jspFileName = "ficheiro.txt";

fos = new FileOutputStream(new File(caminho,ficheiro));

Mas não sei se é isto que queres fazer... de qualquer das formas tendo isso em variaveis podes alterar a qualquer altura o nome delas e tornar a coisa um pouco mais dinamica, podes usar getters e setters para melhor efeito.

o %tomcatroot% será o local onde está a root do teu tomcat, mas podes meter qualquer outra directoria.

Se n for isto diz e sê mais especifico que a malta tenta ajudar um pouco mais.
 
Atribuis variaveis tipo:

Código:
String caminho = "%tomcatroot%\\JSP\\fotos\\";
String jspFileName = "ficheiro.txt";

fos = new FileOutputStream(new File(caminho,ficheiro));
Mas não sei se é isto que queres fazer... de qualquer das formas tendo isso em variaveis podes alterar a qualquer altura o nome delas e tornar a coisa um pouco mais dinamica, podes usar getters e setters para melhor efeito.

o %tomcatroot% será o local onde está a root do teu tomcat, mas podes meter qualquer outra directoria.

Se n for isto diz e sê mais especifico que a malta tenta ajudar um pouco mais.

sim isso resolve e eu já tinha percebido... mas o que eu queria era algo do géner: caminho = "..\\fotos\\" e ele sem alterações colocava sempre na pasta fotos dentro da pasta onde estiveressem os jsps... mas isto resolve... gracias!
 
Back
Topo