Author |
Message |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 23/11/2008 18:57:51
|
ricardojlrufino
![[Avatar]](/images/avatar/a760880003e7ddedfef56acb3b09697f.jpg)
Joined: 30/03/2008 20:07:28
Messages: 227
Location: Teresina PI
Offline
|
Olá amigos.
Estou utilizando uma lib da Jquery(multiple-file-upload) para fazer upload de arquivos.
Qual o problema ???
É que ela gera varios input file com o mesmo nome. Até ai eu acho que tudo bem...
Só que quando eu tento recuperar FileItem[] arquivos = (FileItem[]) input.getValue("arquivo"); dá erro de CAST.
Mas eu acho que não era pra dar. pois fiz um teste, usando campos com mesmo nome.
Code:
<input name="arquivoStr" id="fileUploadX" type="text" size="40"/>
<input name="arquivoStr" id="fileUploadX" type="text" size="40"/>
<input name="arquivoStr" id="fileUploadX" type="text" size="40"/>
<input name="arquivo" id="fileUploadX" type="file" size="40"/>
<input name="arquivo" id="fileUploadX" type="file" size="40"/>
<input name="arquivo" id="fileUploadX" type="file" size="40"/>
Na action, e depuro:
Code:
Iterator<String> keys = input.keys();
while (keys.hasNext()){
String string = (String) keys.next();
System.out.println(">> " + string + " = " + input.getValue(string));
}
saida é:
Code:
>> arquivo = org.apache.commons.fileupload.DefaultFileItem@5e43ee
>> arquivoStr = [Ljava.lang.String;@bde56d
Como podem perceber se tem inputs normais cmom o mesmo nome, ele trasforma em ARRAY, mas com input file ele não funciona assim.
Ta faltando alguma coisa que não sei ????
|
Ricardo JL Rufino <ricardo.jl.rufino@gmail.com> < UNYK > :: Q4Soft :: Teresina - PI
"Existe apenas um bem, o saber, e apenas um mal, a ignorância" - Sócrates
"Devemos julgar um homem mais pelas suas perguntas que pelas respostas" - Voltaire
Mentawai Developer
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 23/11/2008 20:13:20
|
saoj
Joined: 01/07/2005 09:59:17
Messages: 2846
Location: Rio de Janeiro, RJ
Offline
|
ricardocobain wrote:
Como podem perceber se tem inputs normais cmom o mesmo nome, ele trasforma em ARRAY, mas com input file ele não funciona assim.
Nunca tentei fazer isso, mas acho que o commons fileupload não suporta vários arquivos com o mesmo nome. Um vai acabar sobre-escrever o outro.
Dá uma olhada no código-fonte do FileUploadFilter e veja que quem faz o parse da requisição é o commons upload e ele que vai decidir como fazer isso.
Te recomendo abandonar essa idéia se possível e criar nomes diferentes, ou tentar entender se tem como fazer o commons upload suportar isso.
|
Sergio Oliveira
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 24/11/2008 08:38:26
|
apfmiranda
![[Avatar]](/images/avatar/8fe0093bb30d6f8c31474bd0764e6ac0.jpg)
Joined: 30/08/2007 19:40:30
Messages: 54
Location: Porto - Portugal
Offline
|
Se a questão é o mult upload em si, vê se isto resolve:
http://forum.mentaframework.org/posts/list/1986.page
|
Alexandre Miranda |
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 24/11/2008 13:53:29
|
ricardojlrufino
![[Avatar]](/images/avatar/a760880003e7ddedfef56acb3b09697f.jpg)
Joined: 30/03/2008 20:07:28
Messages: 227
Location: Teresina PI
Offline
|
Gostei desse FancyUpload, mas já implementei da forma que o sérgio sugeriu...
No proximo projeto utilizo ele ....
Pq o aperreio aqui ta grande !!! heheh
valeu !
|
Ricardo JL Rufino <ricardo.jl.rufino@gmail.com> < UNYK > :: Q4Soft :: Teresina - PI
"Existe apenas um bem, o saber, e apenas um mal, a ignorância" - Sócrates
"Devemos julgar um homem mais pelas suas perguntas que pelas respostas" - Voltaire
Mentawai Developer
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 21/07/2011 13:53:02
|
ricardojlrufino
![[Avatar]](/images/avatar/a760880003e7ddedfef56acb3b09697f.jpg)
Joined: 30/03/2008 20:07:28
Messages: 227
Location: Teresina PI
Offline
|
Respondendo um pergunta que me fizeram por MP:
Fala Ricardo, tudo bom?
Me deparei agora com um problema, que fazendo uma busca pelo forum, descobri que você teve, e conseguiu resolver:
http://forum.mentaframework.org/posts/list/2150.page
Eu contornei esse problema criando uma janelinha com swing e subindo os arquivos por lá. Mas como voce resolveu, gostaria de saber como resolveu o problema do cast.
Utilizei um plugin da jquery para isso, ele ele usa por trás uma implementação em flash.
- http://www.uploadify.com/
Ele cuida de fazer o envio para você.
No site tem um tutorial explicando a parte da visão HTML/JavaScript
Exemplos:
JavaScipt...
Code:
$(document).ready(function() {
$("#uploadify").uploadify({
'uploader' : 'js/jquery_plugins/upload/uploadify.swf',
'script' : '${uploadUrlFile};JSESSIONID=<%= session.getId() %>',
'cancelImg' : 'js/jquery_plugins/upload/cancel.png',
'folder' : 'uploads',
'queueID' : 'fileQueue',
'auto' : false,
'multi' : true,
'removeCompleted': false,
'fileDataName' : 'arquivo',
'fileDesc' : '${uploadFileDesc}',
'fileExt' : '${uploadFileExt}',
'buttonText' : '${uploadButtonText}',
onAllComplete : allUploadsComplete,
onSelectOnce : onArquivoAdicionado,
'scriptData' : {'JSESSIONID' : '<%= session.getId() %>'}
});
});
Observe que vc deve substituir as variaveis de JSP, ex:
${uploadUrlFile}, ${uploadFileDesc} , etc..
O Html...
Code:
<div id="uploadifyPanel" style="padding: 10px;text-align: left;">
<input type="file" name="uploadify" id="uploadify" />
<div id="uploadifyButtons" style="float: right; display: none;">
<div id="btnDownload">
<a href="#">Enviar</a>
</div>
<div id="btnCancel">
<a href="#">Cancelar Todos</a>
</div>
</div>
<div id="fileQueue" style="clear: both;"></div>
</div>
Na Action vc se baseia pelo tutorial:
http://www.mentaframework.org/fileupload.jsp
|
Ricardo JL Rufino <ricardo.jl.rufino@gmail.com> < UNYK > :: Q4Soft :: Teresina - PI
"Existe apenas um bem, o saber, e apenas um mal, a ignorância" - Sócrates
"Devemos julgar um homem mais pelas suas perguntas que pelas respostas" - Voltaire
Mentawai Developer
|
|
 |
|