Enctype="multipart/form-data" no form + parâmetro Servlet

4 respostas
guilhermevh

Pessoal, estou com um problema para passar parâmetros junto ao post que faz o upload do arquivo.
Tenho um página que faz upload de arquivos para importação de dados. Está funcionando perfeitamente, porém agora preciso passar alguns parâmetros, e pega-los do Servlet, com por exemplo: “request.getParameter(“tp_tabela”);”

No tenho a chamada abaixo: (está funcionando), mas os parâmetros chegam como null no servlet, eu percebi que se eu tirar o enctype=“multipart/form-data” , eu consigo pegar os parâmetros no servlet, mas dessa forma não consigo fazer o upload do arquivo. O que eu posso fazer?

<form action="controller?business=cargaSerMatMed.ExecutaCargaServMatMed" name="input" enctype="multipart/form-data" method="post" onsubmit="return validaCampoImportar(document.getElementById('importa'))">

<!-- input hiddens que desejo passar como parâmetros -->
<input type="hidden" name="tp_tabela" id ="tp_tabela" value="">
<input type="hidden" name="zera_tabela" id ="zera_tabela" value="">
...
...
</form>

se eu tirar o enctype=“multipart/form-data” consigo pegar os parâmetros, mas não consigo realizar o upload. Alguma idéia de como retornar isso!!?!

Grato

4 Respostas

dreamspeaker

Guilherme, como seu servlet está fazendo o upload do arquivo?

Vc está usando alguma API, como o fileupload?

guilhermevh

estou utilizando a API MultipartRequest da oreilly.

dreamspeaker

Olha, eu não conheço essa API, mas pelo pouco que olhei na net, voce tem que usar o getParameter da API, e não do request.

Tipo, algo assim

MultipartRequest multipartRequest = new MultipartRequest (request, "c://temp"); String tpTabela = multipartRequest.getParameter("tp_tabela"); ...
É um chute, nem sei se isso compila. Mas deve ser por aí.

guilhermevh

opa, é isso mesmo…obrigado dreamspeker…
fiz um esquema que coloco tudo no HashMap…

Enumeration enmParams = mltRequest.getParameterNames();

                        String strNameParam = "";

                        while (enmParams.hasMoreElements()) {

                            strNameParam = (String) enmParams.nextElement();

                            if (mltRequest.getParameter(strNameParam) != null) {
                                this.listaParametros.put(strNameParam, mltRequest.getParameter(strNameParam));
                              }

                        }

obrigado… 8)

Criado 17 de março de 2009
Ultima resposta 17 de mar. de 2009
Respostas 4
Participantes 2