[Logo] Mentawai Forum - Mentawai Web Framework
  [Search] Search   [Recent Topics] Recent Topics   [Members]  Member Listing   [Groups] Back to home page 
[Register] Register / 
[Login] Login 
Como fazer upload de vários arquivos  XML
Forum Index -> Comentários Gerais
Author Message
andre_guitar7


[Avatar]

Joined: 21/03/2006 12:03:21
Messages: 259
Location: Curitiba - PR
Offline

Gente... vcs já viram a forma do yahoo anexar arquivos? Inicialmente aparece um input do tipo file (normal) e tem um link "Anexar mais arquivos". Quando vc clica ali ele adiciona mais um input file ao formulario, e mais um e mais um assim por diante.. fiz esse javascript no meu sistema... quando clica em anexar mais arquivos ele adiciona mais um input file no meu formulário e vários, se eu quiser. O name do meu input fica file1, file2, file3, e assim por diante... minha dúvida é...

Como fazer um FileUpload receber vários arquivos em uma requisição, sem saber quantos arquivos está recebendo do form?

vlw

ps: postei isso no guj
saoj



Joined: 01/07/2005 09:59:17
Messages: 2846
Location: Rio de Janeiro, RJ
Offline

Não tenho idéia, mas sempre temos que começar pelo básico.

Pq adicionar vários <input type="file" name="file1">, <input type="file" name="file2"> não funcionaria ?

Sergio Oliveira

andre_guitar7


[Avatar]

Joined: 21/03/2006 12:03:21
Messages: 259
Location: Curitiba - PR
Offline

Resolvido... pra quem precisar, ou quiser ver como funciona:

O form com javascript:
Code:
<script language="javascript">
 	function addFile(){
 		var IE = document.all?true:false
 		var tBodyFiles = document.getElementById( "tBodyFiles" );		
 		var tr = document.createElement( "TR" );
 		var td1 = document.createElement( "TD" );
 		td1.setAttribute( "align" , "right" );
 		if( !IE ){
 			var length = tBodyFiles.childNodes.length -1;
 		}else{
 			var length = tBodyFiles.childNodes.length +1;			
 		}		
 		var text = document.createTextNode( "Foto " + length + ": " );
 		var td2 = document.createElement( "TD" );		
 		var input = document.createElement( 'INPUT' );
 		input.setAttribute( "type" , "file" );
 		input.setAttribute( "name" , "theFile" + length );
 		td1.appendChild( text );
 		td2.appendChild( input );
 		tr.appendChild( td1 );
 		tr.appendChild( td2 );		
 		tBodyFiles.appendChild( tr );
 	}
 </script>
 <table class="textoTabela">
 <tbody id="tBodyFiles">
 <tr><td align="right">Foto 1: </td><td><input name="theFile1" type="file" /></td></tr>
 </tbody>
 <tr><td></td><td><a href="javascript:addFile()">Anexar mais fotos</a></td></tr>
 <tr><td><br></td></tr>
 <tr><td></td><td align="center"><input type="submit" value="Gravar" class="button"></td></tr>
 </table>
 </form>


No action:
Code:
int countFile = 1;
 while( input.getValue( "theFile" + countFile ) != null ){
 	FileItem fileItem = ( FileItem ) input.getValue( "theFile" + countFile );
 	try{
 		fileItem.write( new File( org.mentawai.core.ApplicationManager.getRealPath() + "/imagens/" + fileItem.getName() ) );
 	}catch( Exception e ){	
 		return ERROR;
 	}			
 	countFile++;
 }


saoj



Joined: 01/07/2005 09:59:17
Messages: 2846
Location: Rio de Janeiro, RJ
Offline

Vc pode usar tb o keys() do input!


Sergio Oliveira

andre_guitar7


[Avatar]

Joined: 21/03/2006 12:03:21
Messages: 259
Location: Curitiba - PR
Offline

É verdade, não tinha percebido...
 
Forum Index -> Comentários Gerais
Go to:   
Powered by JForum 2.1.6 © JForum Team