[RESOLVIDO] Rapidinha! Enviar dois Objetos para o servlet

2 respostas
Fernando_H_Gomes

Seguinte no código abaixo eu envio um arquivo para o servidor ..
ate ai tudo bem,
mas eu queria enviar um string antes disso ..
quero enviar qual a extensao do arquivo.
tipo enviar uma String e depois o meu array de bytes do arquivo.

FileInputStream bais = new FileInputStream(arquivoFinal);
BufferedOutputStream bos = new BufferedOutputStream(conexao.getOutputStream());
			
			
while (true) {
	synchronized (buffer) {
		int amountRead = bais.read(buffer);
		if (amountRead == -1) {
			break;
		}
		bos.write(buffer, 0, amountRead);
	}
}
			
bais.close();
			
bos.flush();
bos.close();

aqui é onde eu leio o arquivo.. ja no meu servlet..
aqui eu iria ler .. primeiro a string que é a extensao e depois o arquivo.

BufferedInputStream bis = new BufferedInputStream(request.getInputStream());
FileOutputStream fos = new FileOutputStream(arquivoFinal);
			
bis.read(new byte[extensao.getBytes().length]);
while(true)
{
	synchronized(buffer)
	{
		int amountRead = bis.read(buffer);
		if(amountRead == -1)
		{
			break;
		}
		fos.write(buffer, 0, amountRead);
	}
}
			
bis.close();
			
fos.flush();
fos.close();

Urgente por favor, sei que é meio simples, se alguem puder me ajudar.

-------------
RESOLVVIDO..
NA VERDADE FICO A SOLUÇÃO QUE EU POSTEI MAIS ABAIXO, JA QUE NAO SURGIU OUTRA

2 Respostas

wolmirGarbin

Cara não entendi muito bem!
Mas seguinte você pode fazer um unico método para isso!
qualquer coisa explica melhor sua duvida…
mas se o arquivo que vc vai fazer o upload for sempre o mesmo tipo .txt ja joga direto la senão vai ter que pegar nome do arquivo e mandar com o array de bytes la você decide o que usar primeiro(Orientação a objeto) cria um objeto e popula ele com os dados depois vc trabalha tranquilamente!
Valeu!

Fernando_H_Gomes

cara é o seguinte…
se eu estou pedindo … é porque vai variar …

eu dei uma solução meio fulera pra resolver por hora…
eu padronizei que minha string extensao vai ter no maximo 164 bytes
entao criei um array de bytes pegando extensao.getBytes();

escrevi no meu outPut um array de 164 bytes …

byte[] extensaoByte = extensao.getBytes(); byte[] bytes = new byte[164 - extensao.getBytes().lenght]; bos.write(extensaoByte); bos.write(bytes);
e depois os bytes do meu arquivo …

e no servlet eu li um array de 164 bytes e trasnformei em string …

byte[] extensaoByte = new byte[164]; bis.read(extensaoByte); String extensao = new String(extensaoByte).trim();
e depois peguei o resto … q eu sei que é o file …

so que aqui eu to convencionando…padronizando …
e eu nao queria fazer deste jeito…
queria um jeito melhor…

Criado 1 de março de 2010
Ultima resposta 1 de mar. de 2010
Respostas 2
Participantes 2