Alguem pode me ajudar

9 respostas
D

Estou aprendendo java e estou me aventurando com java web mais precisamente com servlets e se alguem puder me ajudar gostaria de um modelo de classe que pegue um parametro enviado atraves de uma pagina html e armazene este parametro em um diretorio. tnks

9 Respostas

UMC

Google!!!
Da uma olhada aki:
http://www.guj.com.br/article.show.logic?id=9
vlw
abs

D

Gostei do link que me nviaram mas isto eu ja sei eu quero que o servlet pegue um parametro e armazene no servidor ou em um diretório especifico. Alguém tem um modelo de código??

UMC

Q tipo de parametro??
uma arquivo de texto uma imagem!!
o que?
vlw
abs

D

Eu vou mandar um arquivo de texto através de uma pagina html e quero armazena-lo em um diretório ou no servidor

UMC

Ok,
vo prepara um negocio e te passo!!
vlw

UMC

Sua JSP:

<html>
...
<body>
    ...
        <form action="ServletUpload" method="post" enctype="multipart/form-data">
                <input type="file" name="arquivo"/> <input type="submit" value="Upload"/>
        </form>
    ...
</body>
</html>
ServletUpload:
public void doPost(HttpServletRequest req, HttpServletResponse res) throws IOException, ServletException {
  try {
    FileItemFactory factory = new FileItemFactory();
    ServletFileUpload upload = new ServletFileUpload(factory);
    InputStream is = null;//Este será o objeto que representará seu arquivo
    boolean isMultipart = ServletFileUpload.isMultipartContent(new ServletRequestContext(req));
    if (isMultipart) {
        List itensFormulario = upload.parseRequest(req);//Lista todos os campos do fomulário (input's)
        FileItem item = null;
        for (int i = 0; i < itensFormulario.size(); i++) {
            item = (FileItem)itensFormulario.get(i);
            if (!item.isFormField()) {//Caso o item seja externo (um arquivo selecionado no input file)
                is = item.getInputStream();//Agora temos o InputStream arquivo selecionado no input file
                System.out.println(item.getName());//Nome do arquivo. Utilize para gravar o conteúdo do arquivo selecionado em outro arquivo de saída.
            }
        }
    }
    ...
  } catch (Exception e) {
  }
}
Você pode utilizar este input stream para várias coisas, por exemplo, gravá-lo no HD:
public class FileUtils {

    public static byte[] convertInputStreamToByteArray(InputStream is) throws Exception {
        if (is == null) {
            return null;
        }

        ByteArrayOutputStream baos = new ByteArrayOutputStream();
        byte[] buffer = new byte[25600];
        int bytesLidos = 0;
        while ((bytesLidos = is.read(buffer, 0, buffer.length)) != -1) {
            baos.write(buffer, 0, bytesLidos);
        }
        return baos.toByteArray();
    }
}
Você pode gravar arquivos utilizando a classe acima:
try {
    byte[] bytes = FileUtils.convertInputStreamToByteArray(is);//is é o InputStream recuperado na ServletUpload
    OutputStream out = new FileOutputStream("C:\\arquivo_saida.txt");//criamos um arquivo de saída. txt é uma extensão de exemplo, você deverá utilizar a extensão do arquivo selecionado no input file da página.
    out.write(bytes);
    out.flush();
    out.close();
} catch (Exception e) {
}
Espero q sirva! vlw abs
UMC

Lembre -se de baixar os JARs do apache commons!!
aki:http://commons.apache.org/fileupload/
vlw
abs

D

Muito obrigado pela ajuda!!! é a primeira vez que participo de um forum e vi que vlae muito a pena!!!grande abraço!!!

UMC

heehehe !
estamoas aki pra isso!!
ser ajudado e ajudar!!
vlw
abs

Criado 14 de janeiro de 2010
Ultima resposta 15 de jan. de 2010
Respostas 9
Participantes 2