[Flex+Java] Upload de Arquivo e salvar arquivo Servidor

3 respostas
J

Bom dia galera, seguinte.

Depois de muitas pesquisas, eu chequei em uma parte que até não me pareceu muito difícil, mas dela não consigo sair.

Estou desenvolvendo uma funcionalidade que, o usuário irá clicar no botão procurar, escolher o arquivo e este será mandado para o servidor.
No servidor, irei gravar os dados deste arquivo no banco e depois excluir este arquivo, ou seja, apenas um upload temporário, até que os dados estejam gravados.

Consegui criar o métodos responsáveis por abrir o browser, o cara escolher o arquivo, capturar o nome do arquivo. E só.

Agora estou com dificuldades para criar o método para o botão importar, que irá gravar este arquivo no servidor.
Preciso pelo menos disso, o arquivo chegando no servidor, o resto acho que consigo manipular o arquivo e gravar no banco.

Segue o que fiz, e se alguém conseguir me dar uma ajuda.

Obrigado.

private function procurarArquivo():void
	{
		//HAlert.informacao("Chegou");
		var FILE_FILTER_CSV_FILES_TYPE:Array = [new FileFilter("CSV files", "*.csv")];
		
		refUploadFile = new FileReference();
		refUploadFile.browse(FILE_FILTER_CSV_FILES_TYPE);
		refUploadFile.addEventListener(Event.SELECT, arquivoSelecionado);
		//refUploadFile.addEventListener(Event.COMPLETE, arquivoCompleto);
	}
	
	private function arquivoSelecionado(evt:Event):void
	{
		
		UploadFiles.push({
		name:refUploadFile.name,
		size:FileInfo.formatFileSize(refUploadFile.size),
		status:"inicial"});

		txtArquivo.text = refUploadFile.name;
						
		try
		{
			refUploadFile.load();
		}catch( err:IOErrorEvent ) {
			Alert.show("erro");
		}
	}

//Essa Função, nem devo usar, mas ela ta ai.

/*private function arquivoCompleto(evt:Event):void
	{
		refUploadFile = evt.currentTarget as FileReference;
		
		var data:ByteArray = refUploadFile.data;
		
		//var token:AsyncToken = AsyncToken(remoteUpload.doUpload(data, refUploadFile.name));
		
		//token.kind = refUploadFile.name;
		
		for ( var i:int = 0 ; i <  UploadFiles.length ; i++ )
		{
			if( UploadFiles[i].name == refUploadFile )
			{
				UploadFiles[i].status = "enviando";
				txtArquivo.text = refUploadFile.name;
				break;
			}
		}
		
	}*/

/**
    * @private
   	* Exibe a mensagem ao usuario informando que o Upload foi realizado com sucesso.
    */
    private function uploadSucesso(evt:ResultEvent):void
    {
    	Alert.show("Arquivo salvo no server com sucesso", "Sucesso");
    }
    
    /**
    * @private
    * Exibe a mensagem de erro do motivo do Upload não ter sido realizado com sucesso.
    */
    private function uploadErro(evt:FaultEvent):void
    {
    	Alert.show(evt.toString(), 'Erro');
    }

3 Respostas

CristianPalmaSola10

acho que isso pode de ajudar

http://flex.eduardokraus.com/filereferencelist-upload-de-multiplos-arquivos

J

Apesar que este exemplo está em PHP (e não tenho muito conhecimento), vou tentar entender a logica do código…

Obrigado mesmo assim.

Mas se tiver algo em Java, acho que fica mais tranquilo.
Vlw.

CristianPalmaSola10:
acho que isso pode de ajudar

http://flex.eduardokraus.com/filereferencelist-upload-de-multiplos-arquivos

J

Pessoal, seguinte.

Achei esse exemplo aqui em java mesmo:

http://blog.cognitivasolucoes.com/2011/05/upload-de-arquivo-com-servlet-e-flex.html#comment-form

Porém estou com uma dúvida, no servlet, o cara cria:

AccessProperties prop = new AccessProperties()

Mas ele faz os seguintes imports:

import com.xxx.commons.AccessProperties;
import com.xxx.core.exception.BusinessException;

Logico que, ele criou esses pacotes (pelo menos acho).

Esse AccessProperties e esse BusinessException eu devo criar ou tem algum lugar de onde importo?

Agradeço galera.

Criado 27 de fevereiro de 2013
Ultima resposta 28 de fev. de 2013
Respostas 3
Participantes 2