Boa tarde pessoal. Estou com um problema um tanto quanto complexo em meu sistema de multiplos uploads pelo Struts2. Tenho um formulário que o usuário poderá inserir e excluir conjuntos de campos para upload de arquivo, especificamente imagens. Nele possui o arquivo, o posicionamento na tela e o vinculo. Se eu não colocar uma enumeração no indice do campo manualmente, não tem como eu pegar os outros valores de posicionamento e vinculo correspondente, porém, quando eu faço isso, eu não consigo pegar os fileName e nem o contentType dos arquivos enviados. Olhem como está a ferramenta
Segue o formulário:
<table>
<tbody id="Imagens">
<tr class="formtabelamenu">
<td colspan="4"><img src="botao_anexar_imagem.gif" onclick="addUploadSet()" style="cursor: pointer;"></td>
</tr>
<tr>
<th>Arquivo</th>
<th>Posição</th>
<th>Vínculo</th>
<th>Posições</th>
</tr>
<tr>
<td id="">
<input name="arquivo[0]" id="arquivo0" type="file">
</td>
<td id="">
<input name="posicao[0]" id="posicao0" value="E" type="radio"> Esquerda <br>
<input name="posicao[0]" id="posicao0" value="C" type="radio"> Centro <br>
<input name="posicao[0]" id="posicao0" value="D" type="radio"> Direita
</td>
<td id="">
<input name="vinculo[0]" id="vinculo0" type="text">
</td>
<td id="">
<a href="javascript:void();" onclick="delUploadSet(this);" class="imagelink">
<img src="botao_excluir.gif" align="absmiddle" border="0">
</a>
</td>
</tr>
<tr>
<td id="">
<input name="arquivo[2]" id="arquivo2" type="file">
</td>
<td id="">
<input name="posicao[2]" id="posicao2" value="E" type="radio"> Esquerda <br>
<input name="posicao[2]" id="posicao2" value="C" type="radio"> Centro <br>
<input name="posicao[2]" id="posicao2" value="D" type="radio"> Direita
</td>
<td id="">
<input name="vinculo[2]" id="vinculo2" type="text">
</td>
<td id="">
<a href="javascript:void();" onclick="delUploadSet(this);" class="imagelink">
<img src="botao_excluir.gif" align="absmiddle" border="0">
</a>
</td>
</tr>
<tr>
<td id="">
<input name="arquivo[4]" id="arquivo4" type="file">
</td>
<td id="">
<input name="posicao[4]" id="posicao4" value="E" type="radio"> Esquerda <br>
<input name="posicao[4]" id="posicao4" value="C" type="radio"> Centro <br>
<input name="posicao[4]" id="posicao4" value="D" type="radio"> Direita
</td>
<td id="">
<input name="vinculo[4]" id="vinculo4" type="text">
</td>
<td id="">
<a href="javascript:void();" onclick="delUploadSet(this);" class="imagelink">
<img src="botao_excluir.gif" align="absmiddle" border="0">
</a>
</td>
</tr>
</tbody>
</table>
A action:
public class AHelp extends ActionSupport{
private List<Character> posicao;
private List<String> vinculo;
private List<File> arquivo = new ArrayList<File>();
private List<String> arquivoFileName = new ArrayList<String>();
private List<String> arquivoContentType = new ArrayList<String>();
public String enviar(){
ListIterator<File> lt = getArquivo().listIterator();
while(lt.hasNext()){
Integer key = lt.nextIndex();
System.out.println(key);
System.out.println(getArquivo().get(key));
System.out.println(getPosicao().get(key));
System.out.println(getVinculo().get(key));
lt.next();
}
}
//GETTERS AND SETTERS
}
Eu consigo listar os arquivos, mas não os fileNames e contentTypes.
Alguem pode me ajudar com esse problema.
Agradeço a ajuda.
Leandro