Problemas com pagina de upload

6 respostas
F

Buenas,

Tenho esse cod abaixo:

Page:

<form action="Importar" enctype="multipart/form-data" method="post" >
				<h4>${msg}</h4>
				<table>
					<tr height="200px">
						<td><input type="file" id="arquivo" name="arquivo"
							onchange="Checkfiles()" /></td>
							
					</tr>				
					
					<tr>
						<td width="100%"></td>
						<td><button type="submit">
								<img src="icon/next.png" />
							</button></td>
					</tr>
				</table>
				<input type="text"  name="imgName"  id="imgName" value="${imagemNome}" />
			</form>

.java

String nomeImagem = request.getParameter("imgName");
		try {
			fileUpload.setSizeMax(1111111);
			List<FileItem> itens = fileUpload.parseRequest(request);
			
			System.out.println(fileUpload.getFileSizeMax());
			
			for (FileItem fi : itens) {
				
				fi.write(new File("C:/img", nomeImagem));
				
				urlImagem = "LerImagem?foto="+nomeImagem;
		
			}
......

O codigo funciona tranquilamente, porem quando tento pegar o valor do campo text não funciona, pois o enctype nao deixa eu executar isso. Gostaria de saber se alguem já passou por isso e tem uma solucao melhor para meu problema... Procurei aq no guj mais nao encontrei nada especifico...

Vlw galera!

6 Respostas

aluisiodsv

Está usando algum framework?

Vc disse q o enctype não deixa vc executar isso, mas não disse o q acontece e nem onde.

F

Entao amigo, com enctype ele faz o upload do input type file, porem não consigo pegar o input type text na minha servlet…

aluisiodsv

Vc está utilizando o apache commons upload pra trazer o arquivo.

A sua variável itens, não contém só o arquivo, mas também o texto. Vc pode verificar utilizando o método isFormField() no seu objeto fi.

F

Amigo, de primeiro resolvi o problema usando uma sessão… Mais achei muito interessante oque você disse. Você poderia dar um exemplo de como eu poderia pegar o valor do hidden? (Obs.: estou usando o fileUpload sim!)

aluisiodsv

Em uma rápida pesquisa no google eu encontrei algo q pode te ajudar muito.

for (FileItem item : formItems) {
    // processes only fields that are not form fields
    if (!item.isFormField()) {
        String fileName = new File(item.getName()).getName();
        fileName1+=fileName;
        String filePath = uploadPath + File.separator + fileName;
        File storeFile = new File(filePath);
        // saves the file on disk
        item.write(storeFile);
    } else {
        //here...
        String fieldname = item.getFieldName();
        String fieldvalue = item.getString();
        if (fieldname.equals("p_data")) {
            //logic goes here...
        } else if (fieldname.equals("upload_wall_gallery")) {
            //next logic goes here...
        }
    }
}
aluisiodsv

Se vc estivesse utilizando servlet 3.0 daria pra utilizar uma anotação e tudo seria feito do jeito normal.

Criado 4 de abril de 2013
Ultima resposta 4 de abr. de 2013
Respostas 6
Participantes 2